From 8bb3e17a3be09596e6345970b8d6f16069c424a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cyril=20=C5=A0ebek?= Date: Sun, 7 Jul 2024 22:49:39 +0200 Subject: [PATCH] Optimisations --- .dockerignore | 10 ++++++++++ .gitea/workflows/build.yaml | 8 ++------ Dockerfile | 36 ++++++++++++++++-------------------- 3 files changed, 28 insertions(+), 26 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..93bcd9a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +.DS_Store +node_modules +dist +.astro +.vscode +.gitignore +COPYING +Dockerfile +README.md +.gitea \ No newline at end of file diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index ab1b0c6..7e93c8f 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -63,13 +63,9 @@ jobs: - name: Login to registry run: ssh ${{ vars.TARGET_USER }}@${{ vars.TARGET }} -o StrictHostKeyChecking=no "docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} ${{ vars.REGISTRY }}" - - name: Pull new image - run: ssh ${{ vars.TARGET_USER }}@${{ vars.TARGET }} -o StrictHostKeyChecking=no "docker pull ${{ vars.REGISTRY }}/${{ env.IMAGE_NAME }}:main" + - name: Docker Compose the image + run: ssh ${{ vars.TARGET_USER }}@${{ vars.TARGET }} -o StrictHostKeyChecking=no "docker compose up -d" - name: Logout from registry run: ssh ${{ vars.TARGET_USER }}@${{ vars.TARGET }} -o StrictHostKeyChecking=no "docker logout ${{ vars.REGISTRY }}" - - name: Stop and Remove the container - run: ssh ${{ vars.TARGET_USER }}@${{ vars.TARGET }} -o StrictHostKeyChecking=no "docker stop ${{ env.IMAGE_NAME }} && docker remove ${{ env.IMAGE_NAME }}" - - name: Recreate the container - run: ssh ${{ vars.TARGET_USER }}@${{ vars.TARGET }} -o StrictHostKeyChecking=no "docker run --name=${{ env.IMAGE_NAME }} ${{ env.IMAGE_NAME }}:main" - name: Clean old images run: ssh ${{ vars.TARGET_USER }}@${{ vars.TARGET }} -o StrictHostKeyChecking=no "docker image prune -a" diff --git a/Dockerfile b/Dockerfile index cb28807..4499b2c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,29 +1,25 @@ -FROM node:lts-slim AS build +FROM node:lts-slim AS base WORKDIR /app RUN corepack enable pnpm -COPY package.json package.json +COPY package.json pnpm-lock.yaml ./ + +FROM base AS prod-deps +RUN pnpm install --omit=dev + +FROM base AS build-deps RUN pnpm install -COPY public/ public -COPY src/ src -COPY astro.config.mjs astro.config.mjs -COPY tailwind.config.mjs tailwind.config.mjs -COPY tsconfig.json tsconfig.json -COPY components.json components.json -RUN npm run build +FROM build-deps AS build +COPY . . +RUN pnpm run build -FROM node:lts-slim -WORKDIR /app - -RUN corepack enable pnpm - -COPY --from=build /app/dist /app/dist -COPY --from=build /app/package.json /app/package.json -COPY --from=build /app/pnpm-lock.yaml /app/pnpm-lock.yaml -RUN pnpm install --frozen-lockfile +FROM base AS runtime +COPY --from=prod-deps /app/node_modules ./node_modules +COPY --from=build /app/dist ./dist +ENV HOST=0.0.0.0 +ENV PORT=4321 EXPOSE 4321 - -CMD ["npm", "run", "preview"] \ No newline at end of file +CMD node ./dist/server/entry.mjs \ No newline at end of file