Giriş
Docker compose ile kullanmak için bazı notlar
Image İsmi
Şunlar olabilir
- postgres:11.1
- postgres:13.3
- postgres:15.1
- postgres:15rc2
- debezium/postgres
- debezium/postgres:13En Basit
Şöyle yaparız
version: '3' services: authorization-db: image: postgres:11.1 container_name: auth-db ports: - "5432:5432"
command Alanı
Şunlar olabilir
- max_connections
- max_prepared_transactions
Şöyle yaparız
services: database: image: postgres:latest command: postgres -c 'max_connections=250'
environment Alanı
Ortam Değişkenleri Şunlar olabilir
- POSTGRES_PASSWORD
- POSTGRES_USER
- POSTGRES_DB
Örnek
Şöyle yaparız. Burada iki tane veri tabanı çalıştırılıyor.
version: '3' services: course-catalog-operational-db: image: postgres:13.3 container_name: course-catalog-operational-db command: - "postgres" - "-c" - "wal_level=logical" environment: POSTGRES_PASSWORD: 123456 POSTGRES_DB: course-catalog-db ports: - "5433:5432" instructors-legacy-db: image: postgres:13.3 container_name: instructors-legacy-db command: - "postgres" - "-c" - "wal_level=logical" environment: POSTGRES_PASSWORD: 123456 POSTGRES_DB: instructors-db ports: - "5434:5432" volumes: - ./init.sql:/docker-entrypoint-initdb.d/init.sql
Örnek - Hasura GraphQL + PostgreSQL 15
Şöyle yaparız
version: '3.6' services: postgres: image: postgres:15rc2 restart: always volumes: - db_data:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: postgrespassword ports: - "5432:5432" graphql-engine: image: hasura/graphql-engine:v2.13.0 ports: - "8080:8080" depends_on: - "postgres" restart: always environment: ## postgres database to store Hasura metadata HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres ## this env var can be used to add the above postgres database to Hasura as a data source. this can be removed/updated based on your needs PG_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres ## enable the console served by server HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console ## enable debugging mode. It is recommended to disable this in production HASURA_GRAPHQL_DEV_MODE: "true" HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log ## uncomment next line to set an admin secret HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey volumes: db_data:docker-entrypoint-initdb
Veri tabanı başlarken çalıştırılacak SQL dosyalarını belirtiriz
Örnek
Şöyle yaparız
services: postgres: image: postgres ports: - "5432:5432" restart: always environment: POSTGRES_PASSWORD: password POSTGRES_DB: blogdb POSTGRES_USER: user volumes: - ./data/postgresql:/var/lib/postgresql - ./pg-initdb.d:/docker-entrypoint-initdb.d
healthcheck
Örnek
Şöyle yaparız.
-q ile quite belirtiliyor
-d ile ile veri tabanı ismi belirtiliyor
-U ile kullanıcı ismi belirtiliyor
version: '3'services: postgres: image: postgres:13.1 healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ] timeout: 45s interval: 10s retries: 10 restart: always environment: - POSTGRES_USER=root - POSTGRES_PASSWORD=password - APP_DB_USER=docker - APP_DB_PASS=docker - APP_DB_NAME=docker volumes: - ./db:/docker-entrypoint-initdb.d/ ports: - 5432:5432
Örnek
Şöyle yaparız. Kullanıcı ismi -U ile belirtiliyor
postgres: container_name: scheduling-airflow-postgres image: postgres:13 environment: POSTGRES_USER: airflow POSTGRES_PASSWORD: airflow POSTGRES_DB: airflow deploy: resources: limits: cpus: "0.40" memory: 1200M volumes: - postgres-db-volume:/var/lib/postgresql/data healthcheck: test: ["CMD", "pg_isready", "-U", "airflow"] interval: 5s retries: 5 restart: always profiles: - scheduling networks: - datastack
restart Alanı
Genellikle always değeri verilir. Açıklaması şöyle
restart always : is used to restart the container if there is an error when creating the container.
volumes Alanı
Pod'un kullandığı /var/lib/postgresql/data dizini bir volume'a bağlanır
Örnek
Şöyle yaparız
version: '3.8' services: ... db: image: postgres:15.2 restart: always environment: POSTGRES_USER: book-user POSTGRES_PASSWORD: k9ZqLC POSTGRES_DB: bookdb volumes: - db-data:/var/lib/postgresql/data ports: - 6432:5432 volumes: db-data: driver: local
Hiç yorum yok:
Yorum Gönder