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:
@@ -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
|
||||||
|
|||||||
@@ -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"]
|
||||||
Reference in New Issue
Block a user