add Dockerfile

This commit is contained in:
yyasha 2024-01-29 22:55:20 +03:00
parent 98864e4d03
commit 4bff6e9405
2 changed files with 53 additions and 22 deletions

29
Dockerfile Normal file
View File

@ -0,0 +1,29 @@
FROM golang:alpine AS builder
LABEL builder=true
WORKDIR /build
ADD go.mod .
COPY . .
RUN go mod download
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags "-w -s" -o cmd/recipes/main cmd/recipes/main.go
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags "-w -s" -o cmd/parser/main cmd/parser/main.go
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags "-w -s" -o cmd/migrator/main cmd/migrator/main.go
FROM alpine
WORKDIR /build
COPY --from=builder /build/cmd/recipes/main /build/cmd/recipes/main
COPY --from=builder /build/cmd/migrator/main /build/cmd/migrator/main
COPY --from=builder /build/cmd/parser/main /build/cmd/parser/main
COPY --from=builder /build/config/* /build/config/
COPY --from=builder /build/migrations/* /build/migrations/
RUN touch start.sh
RUN echo "#!/bin/sh" >> start.sh
RUN echo "./cmd/migrator/main --migrations-path migrations" >> start.sh
RUN echo "./cmd/recipes/main" >> start.sh
RUN chmod +x start.sh
CMD ["./start.sh"]

View File

@ -14,28 +14,30 @@ services:
# - ./conf/traefik_custom:/custom/:ro # - ./conf/traefik_custom:/custom/:ro
# - /var/run/docker.sock:/var/run/docker.sock:ro # - /var/run/docker.sock:/var/run/docker.sock:ro
# # rest api # rest api
# app: app:
# build: # build:
# context: . # context: .
# dockerfile: Dockerfile # dockerfile: Dockerfile
# container_name: app image: recipes:latest
# restart: unless-stopped container_name: app
# env_file: .env restart: unless-stopped
# environment: env_file: .env
# DB_ADDR: app_pg:5432 environment:
# MINIO_ADDR: minio:9000 CONFIG_PATH: ./config/local.yaml
# depends_on: depends_on:
# - app_pg - app_pg
# labels: - redis
# - "traefik.enable=true" - minio
# - "traefik.http.routers.app.entrypoints=websecure" # labels:
# - "traefik.http.routers.app.tls=true" # - "traefik.enable=true"
# - "traefik.http.routers.app.tls.certresolver=production" # - "traefik.http.routers.app.entrypoints=websecure"
# - "traefik.http.routers.app.rule=Host(`$API_HOST`) && PathPrefix(`/api/v1/`)" # - "traefik.http.routers.app.tls=true"
# networks: # - "traefik.http.routers.app.tls.certresolver=production"
# microservicesnet: # - "traefik.http.routers.app.rule=Host(`$API_HOST`)"
# ipv4_address: 192.168.4.3 networks:
microservicesnet:
ipv4_address: 192.168.4.3
# postgresql database for app # postgresql database for app
app_pg: app_pg: