我正在尝试使用docker文件构建flask应用程序的docker镜像。flask应用程序使用特定sql版本数据的docker镜像联合/mysql(使用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"]下面是艾米应用程序目录的样子

任何帮助都是非常感谢的。
发布于 2020-10-16 05:53:48
@DavidMaze是正确的,因为docker-compose很可能是在你的主机上并行运行多个docker容器的最干净的方式。一旦你习惯了它的声明,它实际上是记录本地/原型设置的一种很好的方式。
查看一下为datajoint/mysql镜像提供的参考docker-compose。具体来说,在您共享的datajoint-python停靠位置的设置中,如果您的Dockerfile与docker-compose.yml位于同一目录中,则可以简单地实现如下所示:
version: '2.4'
services:
db:
image: datajoint/mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=simple
networks:
- main
#ports:
# - "3306:3306"
#volumes:
# - ./data:/var/lib/mysql
dj:
build: .
depends_on:
db:
condition: service_healthy
environment:
- DJ_HOST=db
- DJ_USER=root
- DJ_PASS=simple
networks:
- main
networks:
main:注意:我有意使用2.X docker-compose版本的唯一原因是,3.X版本是为Docker Swarm部署而设计的,在这种部署中,不需要这样的粒度检查。
https://stackoverflow.com/questions/60698713
复制相似问题