2017-09-14 318 views
0

我有一个期望第一个参数为文件路径的python应用程序。基本上是配置文件。如何将参数(文件路径)传递给Docker中的python应用程序

这个文件应该得到的形式容积/在码头工人

安装

如何通过这样的:

。片段 Pytohn:

with open(sys.argv[1], 'r') as ymlfile: 
    cfg = yaml.load(ymlfile) 

泊坞文件

COPY install.py /wiki/install.py 
CMD [ "python", "/wiki/install.py", "/config/config.yml"] 

运行图像命令

sudo docker run -v /config:/home/example/config/ app-wiki 

我期待config.yml文件位于/家庭/例子/配置/将被复制/配置目录和里面的码头文件 它将可用

但它不是这样工作的。

我哪里去错了?

+0

我从你的回应中得到了提示。 我期待config文件作为install.py的参数。这条路我想从音量。所以我通过名称wikiconfig创建了一个卷。 泊坞窗卷创建wikiconfig 然后分配此卷 须藤搬运工运行-v/wikiconfig:/家庭/例子/配置/应用维基 现在使用 CMD [“蟒蛇”,“/代理/安装。 py“,”/wikiconfig/config.yml“] 这也不会wo – Paperless

回答

0

码头工人CMD的工作方式是需要确保将文件复制到具有正确权限的正确位置。

例子:

RUN mkdir -p /config 
RUN mkdir -p /wiki 
ADD cp <your-location> /config/config.yml 
ADD install.py /wiki/install.py 
CMD [ "python", "/wiki/install.py", "/config/config.yml"] 

另外,搬运工将让你在你的本地目录具有相同的权限。所以,请确保您在这两个文件上都有正确的权限设置。

+0

我期待config文件作为install.py的参数。这条路我想从音量。 – Paperless

0

问题是你的方向不对。格式为<hostpath>:<containerpath>

下面

sudo docker run -v /config:/home/example/config/ app-wiki 

应该是

sudo docker run -v /home/example/config/:/config app-wiki 

否则本配置中/home/example/config/将在容器可在/config

编辑-1

增加了一些更多的解释来清除你的疑惑。

COPY install.py /wiki/install.py 
CMD [ "python", "/wiki/install.py", "/config/config.yml"] 

当你运行上面的图像就会想到一个配置可用在/config/config.yml

现在,如果你有其中有一个config.yml文件,那么你的主机/home/tarun/wikiconfig上的文件夹运行使用

sudo docker run -v /home/tarun/wikiconfig:/config app-wiki 

如果config.yml文件的名称是您wikiconfig文件夹不同的容器,那么你将挂载该文件以config.yml

sudo docker run -v /home/tarun/wikiconfig/myconfig.yml:/config/config.yml app-wiki 

双方将覆盖在生成Dockerfile,因为当你安装一个主机从一个文件夹或文件添加的配置,任何物品在容器内使用相同的路径不能访问图像

+0

我从你的回复中得到了提示。 我期待config文件作为install.py的参数。这条路我想从音量。所以我通过名称wikiconfig创建了一个卷。 泊坞窗卷创建wikiconfig 然后分配此卷 须藤搬运工运行-v/wikiconfig:/家庭/例子/配置/应用维基 现在使用 CMD [“蟒蛇”,“/代理/安装。 py“,”/wikiconfig/config.yml“] 这也不会工作 – Paperless

+0

你的音量顺序是错误的。 '/ wikiconfig:/ home/example/config /'应该是'/ home/example/config /:/ wikiconfig' –

+0

Docker文件中应该用什么来访问这个配置文件? – Paperless

相关问题