proj
src
application
app.py
manage.py
migrations
Dockerfile
docker-compose.yaml
python manage.py db upgrade
FROM python:3.7-alpine
ADD requirements.txt /code/
WORKDIR /code
RUN apk add --no-cache postgresql-dev gcc python3 musl-dev && \
pip3 install -r requirements.txt
ADD . /code
EXPOSE 5000
WORKDIR /code/src/application
CMD ["flask", "run", "--host=0.0.0.0"]
Docker-compose.yaml
---
version: "3"
services:
web:
links:
- "db"
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- db
env_file:
- .env
db:
image: postgres:10
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=app
ports:
- "5432:5432"
expose:
- 5432
我怎么能那么做?
我会添加一个bash脚本,其中包含在启动期间要运行的命令,并将其用作映像中的默认入口点。通常最佳做法是调用此脚本entrypoint.sh
#!/usr/bin/env bash
python manage.py db upgrade
flask run --host=0.0.0.0
然后,在您的Dockerfile中,将最后一行替换为以下内容
RUN chmod u+x ./entrypoint.sh
ENTRYPOINT ["./entrypoint.sh"]
如果您只想在Docker compose中运行upgrade命令,那么您可以在compose文件中重写它,而不是更改图像中的默认入口点,如下所示
web:
links:
- "db"
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- db
entrypoint: /code/entrypoint.sh
env_file:
- .env
问题内容: 我在Docker中安装pipenv: 我收到错误: 如果我跑步 相反,即时通讯收到另一个错误: 但是当我改为执行以下操作时: 这是工作… 于是两个问题:第一:为什么给我这个错误,第二:为什么我必须做之前得到它的工作? 我想使用pipenv创建具有不同python版本和不同依赖版本的虚拟环境。 问题答案: 考虑到您的问题,据我所知,最简单的方法是更新到的最新版本。它仍在开发中,因此很快就
是否可以在lambda中运行docker? 错误:响应:{“errorType”:“Runtime.ExitError”,“errorMessage”:“RequestId:d7a7dc46-b4e2-439b-a16b-e4ee1de1f7c5错误:运行时已退出,但出现错误:退出状态127”} 请求ID:“d7a7dc46-b4e2-439b-a16b-e4ee1de1f7c5” 函数日志: S
如果我直接在docker中运行google-chrome,它会显示如下: 系统:
问题内容: 我正在研究Centos7。我有一个运行Jenkins的Docker容器。在那个Jenkins容器中,我必须构建并运行其他Docker容器。但是詹金斯不认识码头工人。我能够执行一个shell并将docker安装在容器中。但是,是否有可能让容器在主机上使用我的docker- engine?如何使用? 在Jenkins-(docker)-容器中安装Docker的最佳选择是什么? 问题答案:
问题内容: 我正在尝试在Ubuntu容器中下载Debian软件包,如下所示: 我懂了 我已经安装了docker,如下所示: 如何下载文件? 问题答案: 您需要先安装它。创建一个新的,并在其中安装wget: 然后,构建该图像: 最后,运行它:
问题内容: 我启动了Docker,现在正在学习本教程,但是我知道我无法在OS X上运行该命令。 文档指出您运行以下命令来创建本地虚拟机: 但是,此命令在OS X(11.6)中不起作用,出现以下错误: 我试图安装virtualbox。但是,另一页明确指出您不得将其安装在本地计算机上: 不得安装版本4.3.30之前的VirtualBox(与Mac的Docker不兼容) 注意:如果您的系统不满足这些要求