簡體   English   中英

docker-compose postgres自定義數據庫詳細信息

[英]docker-compose postgres customize database details

我正在嘗試使用docker和docker-compose將現有的django應用程序進行docker化。 考慮使用默認的postgres db,我想用新名稱,用戶名和密碼創建一個db。

這是我正在使用的配置。 當我附加到db容器時,我仍然只看到默認帳戶,用戶和密碼。

$ cat .env
# Add Environment Variables

DB_NAME=postgres_2
DB_USER=postgres_2
DB_PASS=postgres_2
DB_SERVICE=postgres_2
DB_PORT=5432

$ cat docker-compose.yml
web:
  restart: always
  build: ./web
  expose:
    - "8000"
  links:
    - db:db
    - redis:redis
  volumes:
    - /usr/src/app/static
  command: /usr/local/bin/gunicorn django_project.wsgi:application -w 2 -b :8000

nginx:
  restart: always
  build: ./nginx/
  ports:
    - "80:80"
  volumes:
    - /www/static
  volumes_from:
    - web
  links:
    - web:web

db:
  restart: always
  image: postgres:latest
  volumes_from:
    - data
  #env_file: .env
  env_file: .env
  ports:
    - "5432:5432"

redis:
  restart: always
  image: redis:latest
  ports:
    - "6379:6379"

data:
  restart: always
  image: postgres:latest
  volumes:
    - /var/lib/postgresql
  command: "true"

docker-compose build; docker-compose up -d; docker ps; docker-compose build; docker-compose up -d; docker ps;

當我連接到數據庫容器時。

$:/home/django# docker exec -it 41de5b474b88 /bin/bash
root@41de5b474b88:/# su - postgres
No directory, logging in with HOME=/
$ psql postgres_1
psql: FATAL:  database "postgres_1" does not exist
$ psql postgres
psql (9.4.4)
Type "help" for help.

postgres=#

是否可以從env文件配置新的數據庫詳細信息,還是應該使用此存儲庫中所示的安裝后腳本的方法?

https://github.com/tutumcloud/postgresql

僅添加環境文件並不會創建數據庫,容器運行后,您必須運行引導腳本。

盡管docker-compose提供了命令指令,但是最好的方法是從基本的postgresql映像創建您自己的映像,並將其用作組件配置中的目標(或者使用docker文件配置該映像)。

在您鏈接的存儲庫中,密碼的設置是由modify_postgress_pass.sh腳本完成的,您可以使用類似的方法。

回答了以上問題的可能解決方案-Docker組合postgresql服務-構建期間無法創建用戶和數據庫?

在docker-compose up上從sql文件創建用戶將是在不同OS(尤其是Windows)中構建docker的好方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM