modified: main_dc/docker-compose.yml

modified:   main_dc/yalarba/api_yal/Dockerfile
add service into docker-compose.yml, upgrade the Dcoekrfile for api_yal
This commit is contained in:
2026-01-30 04:49:52 +05:00
parent a72a13fd5f
commit 5a6314613a
2 changed files with 63 additions and 4 deletions
+33
View File
@@ -65,6 +65,8 @@ services:
condition: service_healthy condition: service_healthy
analytics: analytics:
condition: service_healthy condition: service_healthy
api_yal:
condition: service_healthy
healthcheck: healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost/health || exit 1"] test: ["CMD-SHELL", "curl -f http://localhost/health || exit 1"]
interval: 30s interval: 30s
@@ -268,6 +270,37 @@ services:
timeout: 10s timeout: 10s
retries: 3 retries: 3
# REST API app on Golang для api_yal сервиса
api_yal:
build:
context: ./api_yal # Укажите правильный путь к вашему проекту
dockerfile: Dockerfile
ports:
- "8787:8787"
container_name: api_yal
restart: unless-stopped
environment:
APP_PORT: 8787
LOG_LEVEL: info
networks:
- web-network
- app-network
healthcheck:
test:
[
"CMD",
"wget",
"--no-verbose",
"--tries=1",
"--spider",
"http://localhost:8787/auth",
]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
volumes: volumes:
certbot_data: # volume для данных Certbot certbot_data: # volume для данных Certbot
certbot_www: # volume для данных Certbot certbot_www: # volume для данных Certbot
+30 -4
View File
@@ -1,9 +1,9 @@
FROM golang:1.25.1-alpine FROM golang:1.25.1-alpine AS builder
WORKDIR /app WORKDIR /app
# Устанавливаем зависимости для компиляции # Устанавливаем зависимости для компиляции
RUN apk add --no-cache gcc musl-dev RUN apk add --no-cache gcc musl-dev git ca-certificates tzdata
# Копируем go.mod и go.sum # Копируем go.mod и go.sum
COPY go.mod go.sum ./ COPY go.mod go.sum ./
@@ -13,8 +13,34 @@ RUN go mod download
COPY . . COPY . .
# Компилируем БЕЗ CGO (указываем путь к main.go) # Компилируем БЕЗ CGO (указываем путь к main.go)
RUN CGO_ENABLED=0 GOOS=linux go build -o bin/main ./cmd/main.go RUN CGO_ENABLED=0 GOOS=linux go build -o /app/bin/api_yal ./cmd/main.go
# Финальный образ
FROM alpine:latest AS runner
WORKDIR /app
# Устанавливаем зависимости для runtime
RUN apk add --no-cache ca-certificates tzdata curl
# Создаем непривилегированного пользователя
RUN addgroup -g 1001 -S api && \
adduser -u 1001 -S api -G api
# Копируем бинарник из builder
COPY --from=builder /app/bin/api_yal /app/api_yal
# Копируем конфигурационные файлы (если есть)
COPY --from=builder /app/configs /app/configs
# Настраиваем права доступа
RUN chown -R api:api /app
# Переключаемся на непривилегированного пользователя
USER api
# Открываем порт
EXPOSE 8787 EXPOSE 8787
CMD ["./bin/main"] # Команда для запуска
CMD ["/app/api_yal"]