【发布时间】:2019-10-11 20:54:56
【问题描述】:
我的问题很简单,当 docker-compose build : 一些新文件夹将使用 npm run prod 命令生成时,我在我的 Dockerfile 中添加了“ls -lhtr the_missingFolder”,我可以看到它就在那里。
完成构建后,我运行了 docker-compose up >> Boomm 文件夹不在容器中,为什么?
请问我该如何解决。
FROM ubuntu:16.04
RUN apt-get update && apt install -y build-essential
RUN apt-get update -y && apt-get install -y openssl zip unzip git libpng-dev zlib1g-dev libicu-dev libtool g++
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils
RUN apt install -y composer
RUN apt-get install -y curl wget
RUN apt-get install -y autoconf automake pkg-config libgtk-3-dev nasm
RUN apt-get clean && apt-get update && apt-get install -y locales
RUN locale-gen en_US en_US.UTF-8
RUN apt-get install -y python-software-properties
RUN apt-get install -y software-properties-common
RUN LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
RUN apt-get update
RUN apt install -y php7.1-fpm php7.1-mbstring php7.1-xmlrpc php7.1-soap
php7.1-gd php7.1-xml php7.1-cli php7.1-zip php7.1-pgsql php7.1-curl
RUN curl -sL https://deb.nodesource.com/setup_11.x | bash -
RUN apt-get install -y nodejs
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . ./
COPY package*.json ./
RUN cp .env.docker .env
RUN npm install
RUN npm run prod
COPY . /usr/src/app/
WORKDIR /usr/src/app
RUN composer update
RUN composer install --no-interaction --prefer-dist --optimize-autoloader
RUN php artisan config:clear
RUN php artisan optimize
CMD bash -c "php artisan db:seed --class=App\\module\\role\\database\\seed\\role"
CMD bash -c "php artisan db:seed --class=App\\module\\notification\\database\\seed\\notification"
CMD bash -c "php artisan notifications:generate-files"
CMD bash -c "php artisan migrate"
CMD bash -c "composer install && php artisan serve --host=0.0.0.0 --port=8000"
EXPOSE 8000
最好的问候
【问题讨论】:
-
确保你的镜像不是多阶段构建的
-
如前所述,通常由多阶段构建引起,或者您通过其他调用隐式删除它们(例如,像 npm clean 脚本之类的东西)。根据文件夹的类型,通常会删除诸如构建工具之类的东西,这些东西在运行时不需要以保持图像大小较小。请通过添加完整的 Dockerfile 来澄清您的问题,以便我们可以看到构建期间发生的情况。
-
感谢您的快速回复,我已在问题中添加了上面的 Docekrfile。
-
当我使用“docker run”来运行我的应用程序容器时,一个注释可能会有所帮助:我可以在那里看到丢失的文件..但是使用 docker-compose up 我看不到它们。
-
Docker 版本 17.05.0-ce,构建 89658be // docker-compose 版本 1.16.1,构建 6d1ac21
标签: laravel docker docker-compose