46 lines
3.2 KiB
YAML
46 lines
3.2 KiB
YAML
services: # начало объявления сервисов, которые будут запущены
|
|
postgres: # указываем название сервиса
|
|
image: postgres:14 # указываем название и/или версии образа Docker для Postgres
|
|
restart: always # автоматический перезапуск контейнера, если он упал
|
|
ports:
|
|
- "5432:5432" # пробрасываем порт 5432 из контейнера на хост-машину
|
|
# (слева порт хостовой машины, справа порт контейнера)
|
|
volumes: # указываются монтированные тома, папки, файлы
|
|
- postgres_data:/var/lib/postgresql/data # монтирует том postgres_data к /var/lib/postgresql/data,
|
|
# чтобы данные Postgres сохранялись после перезапуска контейнера
|
|
environment: # задаем переменные окружения для Postgres, такие как:
|
|
POSTGRES_USER: postgres_user # имя пользователя
|
|
POSTGRES_PASSWORD: postgres_password # пароль пользователя
|
|
POSTGRES_DB: postgres_db # имя БД
|
|
|
|
gitea:
|
|
image: gitea/gitea:1.22.2
|
|
restart: always
|
|
ports:
|
|
- "3000:3000" # пробрасывает порты 3000 (HTTP, веб-интерфейс)
|
|
- "222:22" # и 22 (SSH) из контейнера на хост-машину
|
|
volumes:
|
|
- gitea_data:/data
|
|
environment:
|
|
GITEA__database__DB_TYPE: postgres
|
|
GITEA__database__HOST: postgres:5432 # хост бд, название сервиса выступает в роли доменного имени и внутри сети разрешается в ip нужного контейнера
|
|
GITEA__database__NAME: postgres_db
|
|
GITEA__database__USER: postgres_user
|
|
GITEA__database__PASSWD: postgres_password
|
|
depends_on: # указывается зависимость запуска контейнера от другого сервиса
|
|
- postgres # Gitea зависит от Postgres, поэтому Postgres будет запущен первым
|
|
- redis
|
|
|
|
redis:
|
|
image: redis:latest
|
|
restart: always
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
|
|
volumes: # определяем тома, которые будут использоваться сервисами
|
|
postgres_data:
|
|
gitea_data:
|
|
redis_data:
|