鍍金池/ 問答/Python  Linux/ 用docker搭建開發(fā)環(huán)境

用docker搭建開發(fā)環(huán)境

我想用docker搭建我的python開發(fā)環(huán)境,這是我的想法

MyProject:
    codefile1.py
    codefile2.py
    Dockerfile

我的Dockerfile如下:

FROM python:3.6.3
MAINTAINER hulei886 <hulei886@aliyun.com>

RUN mkdir /opt/src

WORKDIR /opt/src

COPY ./requirements.txt /opt/src

RUN pip install -r requirements.txt

VOLUME ./ /opt/src

CMD ["python"]

下面是我的問題:
我的想法是用VOLUME把當(dāng)前目錄映射到容器中的/opt/src目錄,這樣當(dāng)我修改容器外的代碼的時(shí)候,就不需要重新build image,但這樣在創(chuàng)建容器的時(shí)候總是出錯(cuò),錯(cuò)誤信息為:

docker: Error response from daemon: oci runtime error: container_linux.go:265: starting container process caused "process_linux.go:368: container init caused \"open /dev/ptmx: no such file or directory\"".

這是哪里出錯(cuò)了?我只要把VOLUME這一行注釋掉就不會(huì)有錯(cuò)誤了

大神們請(qǐng)幫助一下,不勝感激!

回答
編輯回答
不討囍

可以改成 VOLUME . /opt/src 試試

2017年3月4日 03:29
編輯回答
朽鹿

目錄映射是在執(zhí)行時(shí)完成的,不是在build時(shí)完成的。

Dockerfile里只能申明哪個(gè)目錄會(huì)被用來mount volume,不能申明映射關(guān)系。因?yàn)槟鉨uild好的image可能會(huì)被拿到其他機(jī)器用,你申明的映射關(guān)系的來源路徑在其他機(jī)器中未必存在。

如果你是需要把本地路徑的文件給存到image里,那么你應(yīng)該使用COPY命令。

如果你是需要映射,請(qǐng)?jiān)赽uild完后執(zhí)行image時(shí)用-v參數(shù)映射。

2018年6月11日 18:11
編輯回答
雅痞

請(qǐng)看Dockerfile的語法,不要想當(dāng)然: https://docs.docker.com/engin...

2017年7月20日 06:11