unoffical wafrn mirror wafrn.net
atproto social-network activitypub
at testPDSNotExplode 65 lines 1.9 kB view raw
1# Build stage 2FROM node:24-alpine AS builder 3 4ARG DOMAIN_NAME 5ARG PDS_DOMAIN_NAME 6ARG CACHE_DOMAIN 7ARG MEDIA_DOMAIN 8ARG ACME_EMAIL 9ARG DOMAIN_NAME 10 11ARG FRONTEND_SHORT_TITLE 12ARG FRONTEND_LONG_TITLE 13ARG FRONTEND_DESCRIPTION 14 15ARG CACHE_HOST 16 17RUN apk add --no-cache perl curl tini bash 18 19WORKDIR /app/packages/frontend 20 21COPY package.json /app 22COPY package-lock.json /app 23 24COPY packages/frontend/package.json . 25 26# install dependencies 27RUN npm install 28 29COPY packages/frontend . 30 31# Override frontend files with files put here. Allows easy overriding of assets, and potentially actual code as well 32RUN cp -af /app/packages/frontend/overrides/* /app/packages/frontend/src || true 33 34# ngsw config 35RUN cp /app/packages/frontend/ngsw-config.json.example /app/packages/frontend/ngsw-config.json 36 37RUN perl -pi -e 's/\$\{\{([_A-Z]+):-(.*)\}\}/$ENV{$1}||$2/ge' /app/packages/frontend/ngsw-config.json && \ 38 perl -pi -e 's/\$\{\{([_A-Z]+)\}\}/$ENV{$1}/g' /app/packages/frontend/ngsw-config.json 39 40# copy the frontend environment file 41RUN rm -rf src/environments/environment.prod.ts && mv src/environments/environment.docker.ts src/environments/environment.prod.ts 42 43ENV NODE_ENV=production 44 45RUN npm run build 46 47RUN mv dist/wafrn/browser /app/frontend 48 49COPY packages/frontend/Caddyfile.example /app/Caddyfile 50 51RUN perl -pi -e 's/\$\{\{([_A-Z]+):-(.*)\}\}/$ENV{$1}||$2/ge' /app/Caddyfile && \ 52 perl -pi -e 's/\$\{\{([_A-Z]+)\}\}/$ENV{$1}/g' /app/Caddyfile 53 54RUN perl -pi -e 's/\$\{\{([_A-Z]+):-(.*)\}\}/$ENV{$1}||$2/ge' /app/frontend/index.html && \ 55 perl -pi -e 's/\$\{\{([_A-Z]+)\}\}/$ENV{$1}/g' /app/frontend/index.html 56 57FROM caddy:2 58 59COPY packages/frontend/entrypoint.sh /entrypoint.sh 60COPY --from=builder /app/Caddyfile /etc/caddy/Caddyfile 61COPY --from=builder /app/frontend/ /app/frontend 62 63ENTRYPOINT [ "/entrypoint.sh" ] 64 65CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]