Signed-off-by: Noa Virellia <noa@requiem.garden>
This commit is contained in:
9
.dockerignore
Normal file
9
.dockerignore
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
README.md
|
||||||
|
build
|
||||||
|
dist
|
||||||
|
node_modules
|
||||||
|
LICENSE
|
||||||
|
package-lock.json
|
||||||
|
.git
|
||||||
|
.DS_Store
|
||||||
|
.env
|
||||||
@@ -1,16 +1,28 @@
|
|||||||
FROM docker.io/node:22-alpine AS client-cms-build
|
FROM docker.io/node:22-alpine AS builder
|
||||||
RUN apk add just
|
|
||||||
RUN npm install -g corepack && \
|
ENV PNPM_HOME="/pnpm"
|
||||||
corepack enable
|
ENV PATH="$PNPM_HOME:$PATH"
|
||||||
|
ENV CI=true
|
||||||
|
|
||||||
|
# Enable corepack
|
||||||
|
RUN corepack enable
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Install dependencies with caching
|
||||||
|
COPY package.json pnpm-lock.yaml ./
|
||||||
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
|
||||||
|
pnpm install --frozen-lockfile
|
||||||
|
|
||||||
|
# Build application
|
||||||
|
COPY . .
|
||||||
ARG VITE_APP_BASE_URL
|
ARG VITE_APP_BASE_URL
|
||||||
ENV VITE_APP_BASE_URL=$VITE_APP_BASE_URL
|
ENV VITE_APP_BASE_URL=$VITE_APP_BASE_URL
|
||||||
COPY . .
|
RUN pnpm run build
|
||||||
RUN pnpm install
|
|
||||||
RUN pnpm run build --outDir /app/dist
|
|
||||||
|
|
||||||
|
# Production stage
|
||||||
FROM docker.io/caddy:2-alpine
|
FROM docker.io/caddy:2-alpine
|
||||||
COPY Caddyfile /etc/caddy/Caddyfile
|
COPY Caddyfile /etc/caddy/Caddyfile
|
||||||
COPY --from=client-cms-build /app/dist /srv
|
COPY --from=builder /app/dist /srv
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
ENTRYPOINT ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
|
ENTRYPOINT ["caddy", "run", "--config", "/etc/caddy/Caddyfile", "--adapter", "caddyfile"]
|
||||||
|
|||||||
Reference in New Issue
Block a user