首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用docker镜像使用dockerfile构建不同的docker镜像

使用docker镜像使用dockerfile构建不同的docker镜像
EN

Stack Overflow用户
提问于 2020-03-16 07:29:26
回答 1查看 91关注 0票数 1

我正在尝试使用docker文件构建flask应用程序的docker镜像。flask应用程序使用特定sql版本数据的docker镜像联合/mysql(使用docker-compose)。但我得到以下错误:

代码语言:javascript
复制
/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

代码语言:javascript
复制
# 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"]

下面是艾米应用程序目录的样子

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2020-10-16 05:53:48

@DavidMaze是正确的,因为docker-compose很可能是在你的主机上并行运行多个docker容器的最干净的方式。一旦你习惯了它的声明,它实际上是记录本地/原型设置的一种很好的方式。

查看一下为datajoint/mysql镜像提供的参考docker-compose。具体来说,在您共享的datajoint-python停靠位置的设置中,如果您的Dockerfiledocker-compose.yml位于同一目录中,则可以简单地实现如下所示:

代码语言:javascript
复制
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部署而设计的,在这种部署中,不需要这样的粒度检查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60698713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档