[英]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.