docker - 访问 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”文件夹。
怎么做 ?
解决方案
您可以使用WORKDIR
更改工作目录。所以替换RUN cd ./web/app/themes/sage
为WORKDIR /web/app/themes/sage