35 lines
1.1 KiB
Docker
35 lines
1.1 KiB
Docker
ARG NODE_IMAGE=node:24.22.1-alpine@sha256:06d7adf3e0ef61a13f1d28682726366f97a15aa1888c934d3ecec86c33918b53
|
|
|
|
FROM ${NODE_IMAGE} AS build
|
|
|
|
WORKDIR /app
|
|
RUN corepack enable
|
|
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
|
RUN pnpm install --frozen-lockfile
|
|
|
|
COPY . .
|
|
RUN pnpm build
|
|
|
|
FROM caddy:2.10.2-alpine@sha256:4c6e91c6ed0e2fa03efd5b44747b625fec79bc9cd06ac5235a779726618e530d AS caddy-bin
|
|
|
|
FROM ${NODE_IMAGE} AS runner
|
|
|
|
RUN apk add --no-cache ca-certificates jq mailcap && \
|
|
mkdir -p /config/caddy /data/caddy /etc/caddy /srv && \
|
|
chmod 1777 /config/caddy /data/caddy
|
|
ENV XDG_CONFIG_HOME=/config
|
|
ENV XDG_DATA_HOME=/data
|
|
COPY --from=caddy-bin /usr/bin/caddy /usr/bin/caddy
|
|
COPY Caddyfile /etc/caddy/Caddyfile
|
|
COPY docker-entrypoint.sh /usr/local/bin/drainage-frontend-entrypoint
|
|
COPY --from=build /app/dist /srv
|
|
COPY --from=build /app/dist-server/edge-tts-server.cjs /usr/local/lib/drainage-frontend/edge-tts-server.cjs
|
|
RUN chmod 755 /usr/local/bin/drainage-frontend-entrypoint
|
|
|
|
WORKDIR /srv
|
|
|
|
EXPOSE 80
|
|
ENTRYPOINT ["/usr/local/bin/drainage-frontend-entrypoint"]
|
|
CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
|