Last active
April 14, 2025 17:14
-
-
Save creadone/b70cc7d16c82f98d593a14947ef3417b to your computer and use it in GitHub Desktop.
Конфиг для деплоя с помощью Kamal
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Название приложения. Если сделать `docker ps` контейнеры буду называться billing-* | |
| service: billing | |
| # Название образа приложения в регистре | |
| image: billing-bundle | |
| # Если не указать будет использован root. Юзер должен входить в группу docker | |
| ssh: | |
| user: chucknorris | |
| # Сколько старых контейнеров и образов храним. | |
| retain_containers: 3 | |
| # Серверы и их роли для деплоя (в данном случае все на одном) | |
| servers: | |
| web: | |
| hosts: | |
| - 168.0.0.1 | |
| # Настройки приватного регистра | |
| registry: | |
| server: selcloud.ru/abcd | |
| username: token | |
| password: | |
| - REGISTRY_PASSWORD | |
| # Запрещаем Kamal-proxy получать сертификаты и указываем порт, на котором крутится приложение | |
| proxy: | |
| ssl: false | |
| app_port: 3000 | |
| forward_headers: true | |
| # Каmal после развертывания контейнера идет в порт приложения и делает запрос — таким образом он понимает, что все запустилось, иначе пишет в консоль о проблеме | |
| healthcheck: | |
| interval: 10s | |
| timeout: 60s | |
| # Основные настройки билдера (можно билдить на отдельном сервере, см. https://kamal-deploy.org/docs/configuration/builders/#remote) | |
| builder: | |
| arch: amd64 | |
| context: backend | |
| dockerfile: backend/Dockerfile | |
| # Общие переменные окружения | |
| env: | |
| clear: | |
| DB_HOST: billing-pgbouncer | |
| DB_PORT: 6432 | |
| POSTGRES_USER: billing_user | |
| POSTGRES_DB: billing_production | |
| secret: | |
| - RAILS_MASTER_KEY | |
| - POSTGRES_PASSWORD | |
| # Конфигурация аксессуаров | |
| accessories: | |
| postgres: | |
| image: postgres:16.8 | |
| roles: | |
| - web | |
| env: | |
| clear: | |
| POSTGRES_USER: billing_user | |
| POSTGRES_DB: billing_production | |
| secret: | |
| - POSTGRES_PASSWORD | |
| directories: | |
| - /var/lib/postgresql/data:/var/lib/postgresql/data | |
| pgbouncer: | |
| image: edoburu/pgbouncer:latest | |
| roles: | |
| - web | |
| env: | |
| clear: | |
| LISTEN_PORT: 6432 | |
| DB_USER: billing_user | |
| DB_NAME: billing_production | |
| DB_HOST: billing-postgres | |
| DB_PORT: 5432 | |
| POOL_MODE: transaction | |
| MAX_CLIENT_CONN: 400 | |
| secret: | |
| - POSTGRES_PASSWORD | |
| files: | |
| - pgbouncer/userlist.txt:/etc/pgbouncer/userlist.txt | |
| angie: | |
| image: docker.angie.software/angie:latest | |
| roles: | |
| - web | |
| options: | |
| publish: | |
| - 80:80 | |
| - 443:443 | |
| directories: | |
| - /usr/share/angie/html:/usr/share/angie/html | |
| - /var/lib/angie/acme:/var/lib/angie/acme | |
| files: | |
| - angie/billing.domain.ru.conf:/etc/angie/http.d/billing.domain.ru.conf | |
| - angie/angie.conf:/etc/angie/angie.conf |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment