From 134f3c54b8c1bb6c95078a948a01f2edbb803ce4 Mon Sep 17 00:00:00 2001 From: Benjamin Palko Date: Sun, 27 Apr 2025 14:05:49 -0400 Subject: [PATCH] DOCKER! --- .github/workflows/deploy.yml | 26 ++++++++++++++++++++++++++ Dockerfile | 23 +++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 .github/workflows/deploy.yml create mode 100644 Dockerfile diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..5e83636 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,26 @@ +name: Deployment + +on: + push: + branches: + - main +jobs: + install: + name: Install + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ${{ env.GITHUB_SERVER_URL }} + username: ${{ env.GITHUB_REPOSITORY_OWNER }} + password: ${{ secrets.NPM_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v6 + with: + push: true + tags: git.palko.ca/${{ env.GITHUB_REPOSITORY }}:latest diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..72dc8a3 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM oven/bun:1.2-alpine AS build + +WORKDIR /opt/build + +COPY ./package.json ./bun.lock ./ +RUN bun install + +COPY postcss.config.js svelte.config.js tailwind.config.ts tsconfig.json vite.config.ts ./ +COPY ./src ./src +COPY ./static ./static +RUN bun run build + +RUN rm -rf ./node_modules/ && bun install --production + +FROM node:18-alpine3.21 + +WORKDIR /opt/app + +COPY ./package.json ./bun.lock +COPY --from=build --chown=1000:1000 /opt/build/node_modules/ /opt/app/node_modules/ +COPY --from=build --chown=1000:1000 /opt/build/build /opt/app + +ENTRYPOINT [ "node", "index.js" ]