首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在构建Docker映像时出错:"chown:无法访问'app/csv/':没有这样的文件或目录“

在构建Docker映像时出错:"chown:无法访问'app/csv/':没有这样的文件或目录“
EN

Stack Overflow用户
提问于 2022-06-11 02:44:27
回答 1查看 713关注 0票数 -1

我试图为python应用程序创建一个Docker映像,并获得以下错误

代码语言:javascript
复制
=> ERROR [7/9] RUN chown -R myuser:mygrp app/csv/ resources/datafeed.id                                                                                                           0.4s
------                                                                                                                                                                                  
 > [7/9] RUN chown -R myuser:mygrp app/csv/ resources/datafeed.id:                                                                                                                      
#11 0.325 chown: cannot access 'app/csv/': No such file or directory
#11 0.325 chown: cannot access 'resources/datafeed.id': No such file or directory
------
executor failed running [/bin/sh -c chown -R myuser:mygrp app/csv/ resources/datafeed.id]: exit code: 1

我的Dockerfile如下:

代码语言:javascript
复制
FROM python:3.8-slim-buster

WORKDIR app/

COPY requirements.txt .

RUN pip install -r requirements.txt

RUN groupadd -r -g 2000 mygrp && useradd -u 2000 -r -g mygrp myuser

RUN chown -R myuser:mygrp app/csv/ resources/datafeed.id

RUN chmod -R 700 app/csv/

COPY app .

USER myuser

CMD [ "python", "./main_async.py" ]

另外,我的项目结构也有以下文件:

代码语言:javascript
复制
Project-folder/app/csv
Project-folder/resources/datafeed.id
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-11 03:21:50

你的命令顺序不对。

代码语言:javascript
复制
WORKDIR app/

...

RUN chown -R myuser:mygrp app/csv/ resources/datafeed.id
RUN chmod -R 700 app/csv/

COPY app .

RUN 命令将运行容器中的任何<process>。在当前的Dockerfile中,您是尚未在容器中复制的chown-ing文件。

先做COPY

确保将正确的参数传递给COPY,这通常应该是:

代码语言:javascript
复制
COPY <source on the host> <dest on the container>

因此,如果您正在从Project-folder目录构建:

代码语言:javascript
复制
WORKDIR app

...

# Copy files from the host into the container.
# Since `WORKDIR` is already set, this copies
# all files in the current directory on
# host to under WORKDIR
COPY . .

RUN chown -R myuser:mygrp app/csv/ resources/datafeed.id
RUN chmod -R 700 app/csv/
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72581372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档