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-initdbVeri 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.dhealthcheck
Ö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