簡體   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