【问题标题】:Docker container exits with code 0 after running composer install运行 composer install 后 Docker 容器以代码 0 退出
【发布时间】:2018-12-13 20:48:21
【问题描述】:

我有一个如下所示的 docker 文件:

FROM php:7.0-apache
MAINTAINER "Moritz Buettner"

RUN apt-get update && apt-get install -y libpq-dev >/dev/null 2>&1\
    && docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql >/dev/null 2>&1\
    && docker-php-ext-install pdo pdo_pgsql pgsql mbstring >/dev/null 2>&1

RUN curl -sS https://getcomposer.org/installer | php \
      && chmod +x composer.phar && mv composer.phar /usr/local/bin/composer

RUN apt-get install -y git >/dev/null 2>&1
RUN apt-get install -y zip >/dev/null 2>&1
RUN apt-get install -y unzip >/dev/null 2>&1

COPY api /var/www
RUN a2enmod rewrite && rm -r /var/www/html && ln -sf /var/www/public /var/www/html
RUN chmod -R 777 /var/www

RUN mkdir -m 777 -p /var/www/public/export-files/csv

CMD bash -c "cd /var/www && composer install --prefer-dist --no-scripts --no-autoloader"

在构建映像并运行容器时,composer 会按预期安装所有内容,但一旦完成,容器就会以代码 0 退出。

docker-compose up 的输出:

[... composer installing stuff ...]
inventar-api | Generating autoload files
inventar-api | > Illuminate\Foundation\ComposerScripts::postInstall
inventar-api | > php artisan optimize
inventar-api | Generating optimized class loader
inventar-api | The compiled class file has been removed.
inventar-api exited with code 0

然后我尝试手动重新启动容器,但它会立即关闭。

您对为什么会发生这种情况有什么建议吗?

编辑:在将作曲家添加到 docker 文件之前一切正常。

【问题讨论】:

    标签: docker composer-php docker-compose


    【解决方案1】:

    当 Dockerfile 说时

    CMD bash -c "cd /var/www && composer install --prefer-dist --no-scripts --no-autoloader"
    

    然后,当您启动容器时,Docker 运行该命令,当该命令完成时,容器退出。由于它显示“退出状态 0”,因此命令运行成功。

    也许您的意思是在 Dockerfile 中将 composer install 作为 RUN 步骤运行,并有一个 CMD 实际启动您的服务。

    【讨论】:

    • 嗨@MoritzBüttner 你能分享你的dockerfile sn-p 这个问题吗,我被困在这个问题上,提前谢谢
    • @AlvinTheodora 您好,我刚刚将CMD bash -c "cd /var/www && composer install --prefer-dist --no-scripts --no-autoloader" 替换为RUN cd /var/www && composer install --prefer-dist && composer dump-autoload
    猜你喜欢
    • 2019-12-27
    • 2020-08-24
    • 2019-06-18
    • 2018-10-08
    • 2016-12-13
    • 1970-01-01
    • 2021-10-17
    • 2020-01-02
    • 2019-09-26
    相关资源
    最近更新 更多