【发布时间】:2019-10-23 04:29:52
【问题描述】:
在我的项目中,我有一个像这样的 docker-compose.yml 文件:
version: '3'
networks:
mynetwork:
driver: bridge
services:
postgres:
restart: always
image: postgres:11
ports:
- "5432:5432"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:5432"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- ./data:/var/lib/postgresql/data
web:
build: .
image: <myrepo>/<mypath>
command: python /Code/core/manage.py runserver 0.0.0.0:8000
networks:
- mynetwork
ports:
- "8000:8000"
depends_on:
- postgres
现在我将仅使用 Dockerfile 而不是 docker compose 将我的 dockerized 应用程序构建为图像。 我需要一种方法来使用我的 docker 文件创建 postgres db 映像,就像我使用 docker-compose 所做的那样。
我的实际 dockerfile 是:
FROM python:3.6-alpine
RUN apk add --no-cache make linux-headers libffi-dev jpeg-dev zlib-dev
RUN apk update && apk add postgresql-dev gcc python3-dev musl-dev
#RUN apk update && apk add build-essential libssl-dev libffi-dev
RUN mkdir /Code
WORKDIR /Code
COPY ./requirements.txt .
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
ENV PYTHONUNBUFFERED 1
COPY . /Code/
ENTRYPOINT python /Code/core/manage.py runserver 0.0.0.0:8000
如何从 Dockerfile 创建和启动 postgres db 容器?
提前非常感谢
【问题讨论】:
-
在 docker-compose 中设置 ENV 就足够了。你需要
POSTGRES_DB,POSTGRES_USER,POSTGRES_PASSWORDhub.docker.com/_/postgres -
我想分发我的 docker 镜像,如何添加 postgres 镜像并在 Dockerfile 中设置 ENV?
-
创建基于 postgres 的 dockerfile 并在 Dockerfile 中定义这三个 env 就像
ENV POSTGRES_USER=tes其余两个变量一样
标签: postgresql docker docker-compose dockerfile