我正在尝试对我的Django项目进行docker化。为此,我试图将整个项目分为两个部分
我正在使用以下命令创建Postgres数据库容器:
docker run --name postgres -it -e POSTGRES_USER=username -e POSTGRES_PASSWORD=mysecretpassword postgres
Run Code Online (Sandbox Code Playgroud)
当这个postgres实例开始运行时,我使用以下命令输入了shell postgres实例:
docker exec -it postgres /bin/bash
root@ae052fbce400:/# psql -U psql
Run Code Online (Sandbox Code Playgroud)
在我得到的Psql Shell中,我正在创建数据库,DBNAME并授予它所有特权username;
webapp容器内的数据库设置为:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'DBNAME',
'USER': 'username',
'PASSWORD': 'mysecretpassword',
'HOST': 'postgres',
'PORT': 5432
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的docker-compose.yml文件
services:
web:
image: 1ce04167758d #image build of webapp container
command: python manage.py runserver
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- postgres
postgres:
image: postgres
env_file:
- .env …Run Code Online (Sandbox Code Playgroud)