首页 > 解决方案 > 访问 dockerfile 中的子文件夹

问题描述

我正在尝试创建一个容器来安装我的一个应用程序。

在此应用程序中,我必须composer install在根目录中执行 a,但也要在子文件夹中执行。

在我的 dockerfile 我这样做:

# Switch to non-root 'app' user & install app dependencies
COPY composer.json composer.lock ./
RUN chown -R $NON_ROOT_USER:$NON_ROOT_GROUP $LARAVEL_PATH
USER $NON_ROOT_USER
# Install composer in base directoru
RUN composer install --prefer-dist --no-scripts --no-dev --no-autoloader
# Here I want to go to subfolder
RUN ls -la
RUN cd ./web/app/themes/sage
RUN composer install --prefer-dist --no-scripts --no-dev --no-autoloader
RUN rm -rf /home/$NON_ROOT_USER/.composer

问题是,我收到以下错误: can't cd to ./web/app/themes/sage: No such file or directory

但是,当我查看构建时,我确实RUN ls -la看到了正确的文件体系结构以及我现有的“web”文件夹。

怎么做 ?

标签: dockerdockerfile

解决方案


您可以使用WORKDIR更改工作目录。所以替换RUN cd ./web/app/themes/sageWORKDIR /web/app/themes/sage


推荐阅读