php - 使用 circleci/php:7.3-cli-node-browsers 构建 docker 镜像
问题描述
我正在尝试在 docker 中构建一个图像,但在它编译后,我执行 docker-compose up 并退出。
我正在使用的 docker 文件包含以下说明:
FROM circleci/php:7.3-cli-node-browsers
USER root
WORKDIR /var/www/html
RUN apt-get update && apt-get install -y \
libpng-dev \
zlib1g-dev \
zip \
curl \
&& docker-php-ext-install gd \
&& apt-get install -y zip \
&& apt-get install -y unzip \
&& apt-get install -y git \
&& apt install -y libsqlite3-dev zlib1g-dev \
&& docker-php-ext-install bcmath && docker-php-ext-enable bcmath \
&& docker-php-ext-install pcntl \
&& apt-get install -y --no-install-recommends libmagickwand-dev \
&& docker-php-ext-install exif \
&& pecl install imagick \
&& docker-php-ext-enable imagick
RUN pecl install redis && docker-php-ext-enable redis
COPY .docker/vhost.conf /etc/apache2/sites-available/000-default.conf
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
WORKDIR /var/www/html
COPY / /var/www/html
RUN composer self-update
RUN composer install -n --prefer-dist
RUN npm install
RUN npm run test
RUN chmod -R 777 /var/www/html
RUN chmod -R o+w /var/www/html/storage
COPY docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
RUN ln -s /usr/local/bin/docker-entrypoint.sh / # backwards compat
ENTRYPOINT ["docker-entrypoint.sh"]
这是一个 laravel 项目,带有节点和 Redis。任何想法为什么它不起作用?
提前感谢您的帮助。
解决方案
你的入口点终于调用apache
了,但你甚至没有在你的 docker 镜像中安装 apache。
因此,您需要执行以下操作:
将 apache2 安装在
Dockerfile
:RUN apt-get install -y apache2
正确启动 apache2
docker-entrypoint.sh
:echo "--> Starting app" . /etc/apache2/envvars mkdir -p /var/run/apache2 exec apache2 -D FOREGROUND