【发布时间】:2020-03-15 23:29:25
【问题描述】:
我正在尝试使用 docker 文件构建烧瓶应用程序的 docker 映像。烧瓶应用程序使用特定 sql 版本 datajoint/mysql 的 docker 映像(使用 docker-compose)。但我收到以下错误:
/bin/sh: 1: docker: not found
The command '/bin/sh -c docker run -v /var/run/docker.sock:/var/run/docker.sock ...' returned a non-zero code: 127
我还复制了 docker 和 docker-compose 到我的 app/ 目录。请你能帮我如何安装 docker 映像并从 docker 文件中调用 docker。我已经经历了以下link,但它并没有直接解决我的问题
Dockerfile
# this is an official Python runtime, used as the parent image
FROM python:3.6.5-slim
# set the working directory in the container to /app
WORKDIR /app
# add the current directory to the container as /app
ADD . /app
# execute everyone's favorite pip command, pip install -r
RUN docker run -v /var/run/docker.sock:/var/run/docker.sock ...
RUN ./docker-compose up -d
RUN ./docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=simple datajoint/mysql
# add the current directory to the container as /app
ADD . /app
# execute everyone's favorite pip command, pip install -r
RUN pip install --trusted-host pypi.python.org -r requirements.txt
ADD /datajoint-python /datajoint-python
RUN pip install -e ../datajoint-python/
# unblock port 80 for the Flask app to run on
EXPOSE 1234
# execute the Flask app
CMD ["python", "run.py"]
下面是amy应用目录的样子
非常感谢任何帮助。
【问题讨论】:
-
您根本无法在 Dockerfile 中运行
docker命令,无论如何,该映像基本上只包含一个文件系统并且不保留任何正在运行的进程。您是否正在寻找可以同时启动您的应用程序和数据库的 Docker Compose 设置? -
没有 docker,我使用 docker run 启动我的 sql。该应用程序使用调用数据库。当我运行整个应用程序 + db 打包的东西的 docker 映像时,我现在想要同样的东西。那么我应该使用 docker compose 来做吗?
-
是的,Docker Compose 是一个用于同时运行多个容器的标准工具。
标签: docker flask docker-compose dockerfile datajoint