28 lines
635 B
Docker
28 lines
635 B
Docker
ARG CADDY_VERSION=2.6
|
|
ARG BUILD_ENV=prod
|
|
|
|
FROM node:20.19.0 as base
|
|
WORKDIR /app
|
|
COPY . .
|
|
RUN npm install -g pnpm
|
|
RUN pnpm install
|
|
RUN pnpm build
|
|
|
|
|
|
# The base for mode ENVIRONMENT=prod
|
|
FROM caddy:${CADDY_VERSION}-alpine as prod
|
|
|
|
# Workaround for https://github.com/alpinelinux/docker-alpine/issues/98#issuecomment-679278499
|
|
RUN sed -i 's/https/http/' /etc/apk/repositories \
|
|
&& apk add --no-cache bash
|
|
|
|
COPY docker/Caddyfile /etc/caddy/
|
|
COPY --from=base /app/dist /frontend
|
|
|
|
# Run stage
|
|
FROM ${BUILD_ENV}
|
|
|
|
EXPOSE 80 443
|
|
VOLUME ["/data", "/etc/caddy"]
|
|
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
|