From e883aac2e89020206c58bea3ccd70d871b7c795a Mon Sep 17 00:00:00 2001 From: emil28092005 Date: Wed, 14 Jan 2026 04:19:00 +0300 Subject: [PATCH] Setup Docker building. --- .dockerignore | 13 +++++++++++++ Dockerfile | 20 ++++++++++++++++++++ cmd/server/main.go | 2 +- docker-compose.yml | 14 ++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..31f06a1 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,13 @@ +.git +.gitignore +README.md +*.db +*.sqlite +shagram.db +project_context.txt +.vscode +.idea +*.log +.env +docker-compose.yml +Dockerfile \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..476e68a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM golang:1.25.5-alpine AS builder + +RUN apk add --no-cache build-base +WORKDIR /app +COPY go.mod go.sum ./ +RUN go mod download +COPY . . +RUN CGO_ENABLED=1 GOOS=linux go build -a -installsuffix cgo -o shagram ./cmd/server + +FROM alpine:latest +RUN apk --no-cache add ca-certificates sqlite-libs + +WORKDIR /app +COPY --from=builder /app/shagram . +COPY static ./static +COPY migrations ./migrations +RUN mkdir -p /app/data + +EXPOSE 8080 +CMD ["./shagram"] \ No newline at end of file diff --git a/cmd/server/main.go b/cmd/server/main.go index dad0f38..253c1fc 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -12,7 +12,7 @@ import ( ) func main() { - database, err := db.NewDB("shagram.db") + database, err := db.NewDB("/app/data/shagram.db") if err != nil { log.Fatal(err) } diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..16275e7 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,14 @@ +version: '3.8' + +services: + shagram: + build: . + ports: + - "8080:8080" + volumes: + - ./data:/app/data + - ./static:/app/static + - ./migrations:/app/migrations + environment: + - DATABASE_PATH=/app/shagram.db + container_name: shagram-app \ No newline at end of file