This commit is contained in:
Benjamin Palko 2025-04-27 14:05:49 -04:00
parent 38ae95ae6e
commit 134f3c54b8
2 changed files with 49 additions and 0 deletions

26
.github/workflows/deploy.yml vendored Normal file
View file

@ -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

23
Dockerfile Normal file
View file

@ -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" ]