繁体   English   中英

MacOS:如何使用 docker-compose.yml 和 Dockerfile 挂载卷?

[英]MacOS: How to mount volumes using docker-compose.yml and Dockerfile?

我的项目的文件夹结构如下:

+ cython_test/
    + ny/
        + nyc/
            + docker-compose.yml
            + Dockerfile
            + pigeon.py
            + data/
                + temps.txt

docker-compose.yml

version: '2.1'
services:
  worker:
    build: .  
    volumes: 
      - ./:/opt

Dockerfile

FROM python:3.6-alpine3.10

RUN sleep 5000

要启动容器,我会:

docker-compose -f "ny/nyc/docker-compose.yml" up -d --build

我得到了 output:

Alexs-MacBook-Pro:cython_test alexvissup$ cd "/Users/alexvissup/Codes/cython_test"
Alexs-MacBook-Pro:cython_test alexvissup$ docker-compose -f "ny/nyc/docker-compose.yml" up -d --build
Creating network "nyc_default" with the default driver
Building worker
Step 1/2 : FROM python:3.6-alpine3.10
 ---> 92a867c54c0f
Step 2/2 : RUN sleep 5000
 ---> Running in fdeb933e6cfc

当我执行到容器中时,我希望exec进入/opt并查看本地nyc文件夹中的所有内容,但它是空的。

我需要在docker-compose.yml中指定volumes 这可能吗? 我究竟做错了什么?

Docker 卷将在创建容器时创建,而不是在构建期间。 您的 docker 文件长时间执行睡眠命令,因此 docker-compose 在睡眠功能完全完成之前不会创建容器。 (我根本不明白你为什么需要睡眠,这在 Docker 世界中并不常见)

您在这里遇到的第二个问题是您没有在 docker-compose 和 Dockerfile 中定义容器命令。 您必须定义一个以在构建 docker 映像后保持容器运行。

您可以尝试使用以下命令来解决问题(您可能还需要安装 python 依赖项)

FROM python:3.6-alpine3.10
# RUN pip install flask -- if you need to have some dependencies
WORKDIR /opt
ENTRYPOINT ["python", "pigeon.py"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM