all repos

onasty @ 9f4dd4b

a one-time notes service
9 files changed, 48 insertions(+), 25 deletions(-)
chore: update dockerizing setup (#129)

* chore: fix runtime docker file name

* chore: add builder image

* chore: dockerize seeder
Author: Smirnov Oleksandr ss2316544@gmail.com
Committed by: GitHub noreply@github.com
Committed at: 2025-06-07 16:12:43 +0300
Parent: 9d9c06c
M Dockerfile

@@ -1,9 +1,4 @@

-FROM golang:1.24.3-alpine AS builder - -WORKDIR /app - -COPY go.mod go.sum ./ -RUN go mod download +FROM onasty:builder AS builder COPY cmd cmd COPY internal internal
M Taskfile.yml

@@ -5,11 +5,9 @@ - ".env"

includes: migrate: ./migrations/Taskfile.yml - seed: ./cmd/seed/Taskfile.yml env: - DOCKER_BUILDKIT: 1 - COMPOSE_DOCKER_CLI_BUILD: 1 + COMPOSE_BAKE: 1 vars: gotest:

@@ -27,8 +25,10 @@ - docker compose up -d --build --remove-orphans

docker:down: aliases: [docker:stop] - cmds: - - docker compose stop + cmd: docker compose stop + + seed:run: + - docker compose run --rm seed test: - task: test:unit
A builder.Dockerfile

@@ -0,0 +1,6 @@

+FROM golang:1.24.3-alpine AS builder + +WORKDIR /app + +COPY go.mod go.sum ./ +RUN go mod download
D

@@ -1,6 +0,0 @@

-version: "3" -tasks: - run: - desc: seeds the database - dir: ./cmd/seed/ - cmd: go run *.go
M cmd/seed/main.go

@@ -21,7 +21,6 @@ }

func run(ctx context.Context) error { cfg := config.NewConfig() - cfg.PostgresDSN = os.Getenv("SEED_DSN") logger, err := logger.NewCustomLogger(cfg.LogLevel, cfg.LogFormat, cfg.LogShowLine) if err != nil {
M docker-compose.yml

@@ -3,7 +3,15 @@ runtime:

image: onasty:runtime build: context: . - dockerfile: runtime.dockerfile + dockerfile: runtime.Dockerfile + depends_on: + - builder + + builder: + image: onasty:builder + build: + context: . + dockerfile: builder.Dockerfile core: image: onasty:core

@@ -32,6 +40,17 @@ env_file: ./mailer/.env

depends_on: - runtime - nats + + seed: + image: onasty:seed + build: + context: . + dockerfile: seed.Dockerfile + entrypoint: ["/seed"] + env_file: .env + profiles: [manual] + depends_on: + - postgres postgres: image: postgres:16-alpine
M mailer/Dockerfile

@@ -1,9 +1,4 @@

-FROM golang:1.24.3-alpine AS builder - -WORKDIR /app - -COPY go.mod go.sum ./ -RUN go mod download +FROM onasty:builder AS builder COPY internal internal COPY mailer mailer
A seed.Dockerfile

@@ -0,0 +1,15 @@

+FROM onasty:builder AS builder + +WORKDIR /app + +COPY internal internal +COPY cmd/seed cmd/seed + +ENV CGO_ENABLED=0 GOOS=linux GOARCH=amd64 +RUN --mount=type=cache,target=/root/.cache/go-build,id=onasty-go-build \ + --mount=type=cache,target=/go/pkg/mod,id=onasty-go-mod \ + go build -trimpath -ldflags='-w -s' -o /seed ./cmd/seed + +FROM onasty:runtime +COPY --from=builder /seed /seed +ENTRYPOINT ["/seed"]