POSTGRES_USER POSTGRES_PASSWORD POSTGRES_DB env로 YugabyteDB를 시작하는 docker-compose.yaml
5465 단어 postgresyugabytedbcomposedocker
YugabyteDB는 PostgreSQL과 호환되므로 응용 프로그램을 변경하지 않고도 PostgreSQL을 YugabyteDB로 대체할 수 있습니다. PostgreSQL 이미지를 사용하면 다음 환경 변수를 사용하여 데이터베이스를 생성하고 사용자 및 비밀번호를 설정할 수 있습니다. 그리고 동일한 환경 변수를 사용하지 않는 이유는 무엇입니까?
다음은 knex.js 테스트 스위트https://github.com/knex/knex/blob/master/scripts/docker-compose.yml를 기반으로 한 예입니다.
이
yb-master
는 이름이 yb-tserver
이고 사용자/비밀번호yugabyted
/docker-compose.yml
인 데이터베이스로 PostgreSQL을 시작하고 이 연결이 사용 가능한 시기를 확인하기 위해 다른 컨테이너를 시작합니다.같은 방식으로 YugabyteDB를 추가하는 방법은 다음과 같습니다.
version: '3'
services:
yugabytedb:
image: docker.io/yugabytedb/yugabyte:latest
command: |
bash -c "
# create database and user as soon as database is up
until [ -z "POSTGRES_USER" ] || PGPASSWORD=yugabyte bin/ysqlsh -v ON_ERROR_STOP=1 \\
-c \"create database $${POSTGRES_DB:-$${POSTGRES_USER}} \" \\
-c \"create user $${POSTGRES_USER} password '$${POSTGRES_PASSWORD}' \" \\
2>/dev/null
do
echo \"Waiting for YugabyteDB to be up for creating user $${POSTGRES_USER}.\" ; sleep 5
done &
# start YugabyteDB
bin/yugabyted start --daemon=false --tserver_flags='ysql_enable_auth=true'
"
environment:
- POSTGRES_USER=testuser
- POSTGRES_PASSWORD=knextest
- POSTGRES_DB=knex_test
ports:
- 25433:5433
- 27000:7000
waityugabyte:
image: postgres:13-alpine
links:
- yugabytedb
depends_on:
- yugabytedb
entrypoint:
- bash
- -c
- 'until PGPASSWORD=knextest /usr/local/bin/psql postgres://testuser@yugabytedb:5433/knex_test -c "SELECT 1"; do sleep 5; done'
YugabyteDB 데이터베이스는
knex_test
로 시작되고 백그라운드 루프는 환경 변수에 따라 데이터베이스와 사용자를 생성하기 위해 연결을 시도합니다.YugabyteBD의 기본 포트는 5433이며 기본 포트에서 PostgreSQL과 함께 시작할 수 있습니다. 포트 7000은 그래픽 콘솔입니다.
yb-master/yb-tserver 클러스터 토폴로지를 완전히 제어할 수 있는 더 복잡한 docker-compose.yaml을 원하는 경우 내 랩용으로 생성하는 방법은 다음과 같습니다. https://github.com/FranckPachot/ybdemo/tree/main/docker/yb-lab
2022년 6월 업데이트
testuser
를 사용하는 다음 명령이 더 나을 것입니다. command: |
bash -c '
mkdir -p /var/ybinit
echo "create database $${POSTGRES_DB:-$${POSTGRES_USER}} " > /var/ybinit/01-db.sql
echo "create user $${POSTGRES_USER} password '$${POSTGRES_PASSWORD}' " > /var/ybinit/02-usr.sql
# start YugabyteDB
bin/yugabyted start --daemon=false --initial_scripts_dir=/var/ybinit --tserver_flags=ysql_enable_auth=true
'
knextest
가 작동하지 않는 경우 Nakama docker-compose의 또 다른 예입니다.
Reference
이 문제에 관하여(POSTGRES_USER POSTGRES_PASSWORD POSTGRES_DB env로 YugabyteDB를 시작하는 docker-compose.yaml), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yugabyte/docker-composeyaml-to-start-yugabytedb-with-postgresuser-postgrespassword-postgresdb-env-4do3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)