diff --git a/backend/.dockerignore b/backend/.dockerignore new file mode 100644 index 0000000..1e9af3e --- /dev/null +++ b/backend/.dockerignore @@ -0,0 +1,7 @@ +node_modules/ +dist/ +.env +.env.* +!.env.example +*.log +*.tsbuildinfo diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..af466e7 --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,24 @@ +FROM node:22-alpine AS builder +WORKDIR /app + +RUN npm install -g pnpm + +COPY package.json pnpm-lock.yaml ./ +RUN pnpm install --frozen-lockfile + +COPY . . +RUN pnpm build + +FROM node:22-alpine +WORKDIR /app + +RUN npm install -g pnpm + +COPY package.json pnpm-lock.yaml ./ +RUN pnpm install --frozen-lockfile --prod + +COPY --from=builder /app/dist ./dist + +EXPOSE 1337 + +CMD ["node", "dist/index.js"] diff --git a/frontend/.dockerignore b/frontend/.dockerignore new file mode 100644 index 0000000..b35ea2d --- /dev/null +++ b/frontend/.dockerignore @@ -0,0 +1,7 @@ +node_modules/ +.nuxt/ +.output/ +.env +.env.* +!.env.example +*.log diff --git a/frontend/Dockerfile b/frontend/Dockerfile new file mode 100644 index 0000000..26759f4 --- /dev/null +++ b/frontend/Dockerfile @@ -0,0 +1,21 @@ +FROM node:lts-alpine AS builder +WORKDIR /app + +RUN npm install -g pnpm + +COPY package.json pnpm-lock.yaml ./ +RUN pnpm install --frozen-lockfile + +COPY . . + +ARG API_BASE=http://localhost:1337 +ENV API_BASE=$API_BASE + +RUN pnpm exec nuxt generate + +FROM nginx:stable-alpine +COPY --from=builder /app/.output/public /usr/share/nginx/html + +EXPOSE 80 + +CMD ["nginx", "-g", "daemon off;"]