add docker & release
Some checks failed
build / build (push) Successful in 30s
release-tag / release-image (push) Failing after 1m34s

This commit is contained in:
Tijl 2024-08-22 21:13:06 +02:00
parent c96824332e
commit 8aa78cd0ac
Signed by: tijl
GPG Key ID: DAE24BFCD722F053
6 changed files with 111 additions and 3 deletions

10
.dockerignore Normal file
View File

@ -0,0 +1,10 @@
node_modules/
tijl.dev
tijldev
tijl.dev-core
config.yaml
blog/
.git/
.gitea/
.data/

View File

@ -0,0 +1,42 @@
name: release-tag
on:
push
jobs:
release-image:
runs-on: ubuntu-latest
container:
image: catthehacker/ubuntu:act-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v2
with:
config-inline: |
[registry."https://git.tijl.dev"]
- name: Login to DockerHub
uses: docker/login-action@v2
with:
registry: https://git.tijl.dev
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile
platforms: |
linux/amd64
linux/arm64
push: true
tags: |
git.tijl.dev/tijl/tijl.dev-core:${{ steps.meta.outputs.REPO_VERSION }}
git.tijl.dev/tijl/tijl.dev-core:nightly

2
.gitignore vendored
View File

@ -5,5 +5,7 @@ tijl.dev-core
web/static/js/interactive.js web/static/js/interactive.js
web/static/css/styles.css web/static/css/styles.css
config.yaml config.yaml
config.dev.yaml
blog/ blog/
.data/

26
Dockerfile Normal file
View File

@ -0,0 +1,26 @@
FROM node:20 AS node_builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build:css
RUN npm run build
FROM golang:1.22 AS go_builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
RUN go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
COPY --from=node_builder /app /app
RUN sqlc generate
RUN go build -o tijl.dev-core cmd/server/main.go
FROM golang:1.22
WORKDIR /app
COPY --from=go_builder /app/tijl.dev-core /app/
EXPOSE 3000
CMD ["/app/tijl.dev-core"]

28
docker-compose.yaml Normal file
View File

@ -0,0 +1,28 @@
services:
tijldev-core:
container_name: tijl.dev-core
build:
context: .
dockerfile: Dockerfile
ports:
- 3000:3000
volumes:
- ./config.yaml:/config.yaml
- ./blog:/blog
environment:
TIJLDEV_CONFIG_LOCATION: /config.yaml
depends_on:
- postgres
postgres:
image: postgres
ports:
- 5432:5432
environment:
POSTGRES_USER: tijldev
POSTGRES_PASSWORD: tijldev
POSTGRES_DB: tijldev
volumes:
- ./.data/postgres:/var/lib/postgresql/data

View File

@ -1,6 +1,3 @@
dev:
vite
npm-build-css: npm-build-css:
npm run build:css npm run build:css
@ -15,3 +12,6 @@ go-build:
build: npm-build-css npm-build generate-sqlc go-build build: npm-build-css npm-build generate-sqlc go-build
docker-dev:
docker compose -f docker-compose.yaml up --remove-orphans || docker compose -f docker-compose.yaml down --remove-orphans