push
This commit is contained in:
@@ -0,0 +1,7 @@
|
|||||||
|
# Порт на хосте, куда пробрасывается входной nginx (proxy)
|
||||||
|
HTTP_PORT=8080
|
||||||
|
|
||||||
|
# Пароль БД
|
||||||
|
POSTGRES_USER=app
|
||||||
|
POSTGRES_PASSWORD=app
|
||||||
|
POSTGRES_DB=appdb
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
# Скопируйте в .env и при необходимости измените:
|
|
||||||
# cp .env.example .env
|
|
||||||
|
|
||||||
# Порт на хосте, куда пробрасывается входной nginx (proxy)
|
|
||||||
HTTP_PORT=8080
|
|
||||||
|
|
||||||
# Пароль БД (в продакшене — длинный случайный; не коммитьте .env в git)
|
|
||||||
POSTGRES_USER=app
|
|
||||||
POSTGRES_PASSWORD=app
|
|
||||||
POSTGRES_DB=appdb
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
.env
|
|
||||||
@@ -1,11 +1,9 @@
|
|||||||
# Docker Compose — один файл описывает весь стек.
|
# Docker Compose - один файл описывает весь стек.
|
||||||
# Запуск из этой папки: docker compose up -d --build
|
|
||||||
# Версия схемы compose больше не обязательна в поле `version:` (Compose V2).
|
|
||||||
|
|
||||||
name: multi-service-demo
|
name: multi-service-demo
|
||||||
|
|
||||||
services:
|
services:
|
||||||
# --- Сервис 1: PostgreSQL (готовый образ из Docker Hub) ---
|
# Сервис 1 - образ PostgreSQL
|
||||||
db:
|
db:
|
||||||
image: postgres:16-alpine
|
image: postgres:16-alpine
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -25,7 +23,7 @@ services:
|
|||||||
retries: 10
|
retries: 10
|
||||||
start_period: 10s
|
start_period: 10s
|
||||||
|
|
||||||
# --- Сервис 2: API (собирается из ./api/Dockerfile) ---
|
# Сервис 2 - API (собирается из ./api/Dockerfile)
|
||||||
api:
|
api:
|
||||||
build:
|
build:
|
||||||
context: ./api
|
context: ./api
|
||||||
@@ -36,7 +34,7 @@ services:
|
|||||||
FLASK_ENV: production
|
FLASK_ENV: production
|
||||||
UPLOAD_DIR: /data/uploads
|
UPLOAD_DIR: /data/uploads
|
||||||
volumes:
|
volumes:
|
||||||
# Том для загрузок: файлы копируются в API в папку тома (пример «данные вне образа»)
|
# Том для загрузок: файлы копируются в API в папку тома
|
||||||
- api_uploads:/data/uploads
|
- api_uploads:/data/uploads
|
||||||
depends_on:
|
depends_on:
|
||||||
db:
|
db:
|
||||||
@@ -52,7 +50,7 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
start_period: 20s
|
start_period: 20s
|
||||||
|
|
||||||
# --- Сервис 3: статический фронт (nginx + COPY html в образе web) ---
|
# Сервис 3 - статический фронт (nginx + COPY html в образе web)
|
||||||
web:
|
web:
|
||||||
build:
|
build:
|
||||||
context: ./web
|
context: ./web
|
||||||
@@ -63,14 +61,14 @@ services:
|
|||||||
expose:
|
expose:
|
||||||
- "80"
|
- "80"
|
||||||
|
|
||||||
# --- Сервис 4: reverse proxy — единая точка входа с хоста ---
|
# Сервис 4 - reverse proxy - единая точка входа с хоста
|
||||||
proxy:
|
proxy:
|
||||||
build:
|
build:
|
||||||
context: ./proxy
|
context: ./proxy
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
ports:
|
||||||
# Порт хоста берём из .env (см. .env.example)
|
# Порт хоста берём из .env
|
||||||
- "${HTTP_PORT:-8080}:80"
|
- "${HTTP_PORT:-8080}:80"
|
||||||
depends_on:
|
depends_on:
|
||||||
web:
|
web:
|
||||||
|
|||||||
Reference in New Issue
Block a user