services: # Начало объявления сервисов gitea: # Указывается название сервиса image: gitea/gitea:1.22.2 # Указание названия образа (и/или его версии), который будет взят для создания контейнера restart: always # Указывается политика перезапуска, в данном случае всегда перезапускать контейнер, если он остановился environment: # Указываются переменные среды - GITEA__database__DB_TYPE=postgres # Тип базы данных - GITEA__database__HOST=postgres:5432 # Хост бд. Название сервиса это а-ля доменное имя и внутри сети разрешается в ip нужного контейнера - GITEA__database__NAME=gitea # Название базы данных - GITEA__database__USER=superuser # Пользователь базы данных - GITEA__database__PASSWD=superpassword # Пароль пользователя базы данных ports: # Перечисляются пробросы портов на хостовую машину. Слева порт хостовой машины, справа порт контейнера - "3000:3000" # Web интерфейс - "222:22" # SSH volumes: # Указываются монтированные тома, папки, файлы. В данном случае в папку /data монтируется объявленный ниже том gitea - gitea:/data depends_on: # Указывается зависимость запуска контейнера от другого сервиса, в данном случае запускается только после запуска сервиса бд - postgres # Дальше всё по аналогии, различаются лишь названия, переменные окружения, образы, порты и тома postgres: image: postgres:14 restart: always environment: - POSTGRES_USER=superuser - POSTGRES_PASSWORD=superpassword - POSTGRES_DB=gitea ports: - "5432:5432" volumes: - postgres:/var/lib/postgresql/data rabbitmq: image: rabbitmq:3-management environment: RABBITMQ_DEFAULT_USER: superuser RABBITMQ_DEFAULT_PASS: superpassword ports: - "5672:5672" - "15672:15672" volumes: # Перечисление томов, которые можно использовать как в одном, так и в нескольких сервисах postgres: gitea: