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