网站搬家到 docker 系列之三-- 使用 docker-compose
0. 使用 docker 进行容器间的连接
启动上一节的 postgres 容器, Name 改为 pgsql
docker rename CONTAINER NEW_NAME
修改 Django 的 settings.py 配置
settings.py
DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2','mysql', 'sqlite3' or 'oracle' 'NAME': 'blog', # Your db name, Or path to database file if using sqlite3 'USER': 'postgres', 'PASSWORD': 'postgres', 'HOST': 'pgsql', # Your db host, set to empty string('') for default for localhost, Not used with sqlite3 'PORT': '5432', # Your db port, set to empty string('') for default, Not used with sqlite3 } }
HOST 改名为 pgsql, 方便下面连接容器时设置别名
注: docker 容器间网络访问的 host 是可以通过别名来访问的。
开启 Django 容器
docker run -it --rm --name waterlaw.top --link pgsql:pgsql -v E:\projects\waterlawblog:/home/code -p 8000:8000 waterlaw:top /bin/bash ./start.sh
参数说明 - --rm: 容器退出时销毁容器 - --link: 连接容器:容器别名 - start.sh: 启动脚本
start.sh 内容
source ../pysp/bin/activate && python3 manage.py runserver 0.0.0.0:8000
关于 --link 更多内容请参考文章最后的参考文献。
1. 制作 docker-compose.yml 文件
需要: 一个 Dockerfile 制作 web 镜像, 另外从 Docker Hub 拉取 postgres:9.6 镜像
2. 服务器安装 docker-compose
ubuntu 下使用以下命令:
apt install docker-compose
3. docker-compose build
docker-compose build
docker-compose up -d
依目前来看, up 命令会去拉取依赖镜像。
4. docker-compose.yml 启动命令不支持连续的两个命令比如:
. ../pysp/bin/activate && python3 manage.py runserver 0.0.0.0:8000
docker-compose.yml 中 web 镜像的 command 属性应该为脚本, 以下是错的。
command: python3 manage.py runserver 0.0.0.0:8000
5. 制作 shell 脚本
根目录下新建 start.sh
. ../pysp/bin/activate && python3 manage.py runserver 0.0.0.0:8000
修改 docker-compose.yml 中 web 镜像的 command 属性为
command: /bin/bash ./start.sh
发表评论
评论列表, 共 0 条评论