11

我在 Tutum 上设置了一个新的存储库,链接到 Github 存储库。该项目在我的本地机器上成功构建,但在 4 小时后在 Tutum 上失败并给我以下日志。

Step 27 : ENTRYPOINT /www/run.sh
---> Running in 666e1e87a660
---> eeb9646f9317
Removing intermediate container 666e1e87a660
Successfully built eeb9646f9317
Creating builder1769_sut_1
[Thu Jan 07 17:42:45.675789 2016] [mpm_prefork:notice] [pid 8] AH00163: Apache/2.4.10 (Debian) PHP/5.5.30 configured -- resuming normal operations
[Thu Jan 07 17:42:45.675813 2016] [core:notice] [pid 8] AH00094: Command line: '/usr/sbin/apache2 -D FOREGROUND'
ERROR: Build process returned exit code 137
builder-1769: Terminating...
builder-1769: Terminated
ERROR: Build in 'dockerize' (bcf1bce8) failed in 4:00:52

我的 Dockerfile 的最后一步 27 已经到达,Docker 随即返回消息“成功构建 eeb9646f9317”,但也返回“错误:构建过程返回退出代码 137”。

这是我的 Dockerfile

FROM php:5.5-apache

#Add Servername to avoid warning
RUN sed -i '/ServerName localhost/ d' /etc/apache2/apache2.conf && sed -i '/Listen 80/ a\ServerName localhost' /etc/apache2/apache2.conf

#Add apt packages list for Firefox
RUN echo "deb http://packages.linuxmint.com debian import" >> /etc/apt/sources.list

RUN apt-get update \
    && apt-get install -q -y --force-yes libpng-dev php5-imagick php5-curl php5-mysql php5-ssh2 vim wkhtmltopdf curl nodejs npm nodejs-legacy ruby-full default-jre firefox xvfb  \
    git zlib1g-dev libicu-dev g++ libmcrypt-dev libxml2-dev \
    && rm -rf /var/lib/apt/lists/*

RUN curl -sSL https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer \
    && docker-php-ext-configure intl \
    && docker-php-ext-install gd zip pdo_mysql soap mbstring intl mcrypt bcmath \
    && a2enmod expires headers rewrite \
    && pecl install apcu-4.0.10 \
    && php5enmod mcrypt pdo_mysql \
    && echo "date.timezone=Europe/Paris" >> /usr/local/etc/php/php.ini \
    && echo "short_open_tag=Off" >> /usr/local/etc/php/php.ini \
    && echo "memory_limit=-1" >> /usr/local/etc/php/php.ini \
    && echo "upload_max_filesize=6M" >> /usr/local/etc/php/php.ini \
    && echo "extension=apcu.so" >> /usr/local/etc/php/php.ini

#Firefox
ENV FIREFOX_MINOR 34.0.5
RUN [ -e /usr/bin/firefox ] && rm /usr/bin/firefox
ADD https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${FIREFOX_MINOR}/linux-x86_64/en-US/firefox-${FIREFOX_MINOR}.tar.bz2 /tmp/
RUN apt-get install -q -y libdbus-glib-1-2
RUN tar -xvjf /tmp/firefox-${FIREFOX_MINOR}.tar.bz2 -C /opt/
RUN chmod -R +x /opt/firefox/
RUN ln -s /opt/firefox/firefox /usr/bin/firefox

ADD .docker/vhost.conf /etc/apache2/sites-available/wweeddoo.conf
RUN a2ensite wweeddoo.conf
RUN sed -i '/DocumentRoot \/var\/www\/html/ d' /etc/apache2/apache2.conf
RUN sed -i 's/var\/www/www/g' /etc/apache2/apache2.conf

ADD . /www
WORKDIR /www

# Install dependencies
RUN mkdir -p app/sessions var/cache var/logs
RUN chown -R www-data app/sessions var/cache var/logs
RUN npm install -g bower
RUN npm install -g less
RUN gem install sass
RUN composer config -g github-oauth.github.com ff040c19e1b0ae0a4b97c0a140272ec89c8da161
RUN composer install --optimize-autoloader --prefer-dist

# Add run script
ADD .docker/run.sh /www/run.sh
RUN chmod +x /www/run.sh

ENTRYPOINT ["/www/run.sh"]

还有我的 run.sh

chown -R www-data var/cache var/logs app/sessions
/usr/sbin/apache2ctl -D FOREGROUND

任何想法 ?

4

3 回答 3

23

在 Mac 中,为了解决这个问题,您可能想尝试在 Docker > Preference > Memory 中更改内存分配。大多数情况下增加会起作用。

于 2017-09-14T05:19:27.047 回答
4

我发现这种情况大多数时候发生在服务器耗尽资源并且主要是内存不足的情况下。您有 2 个选项。

  1. 如果这是一个登台服务器,那么您可以使用docker-compose down. 然后构建你的容器,docker-compose build一旦完成,重启你的服务器docker-compose up -d-d用于从您的终端“分离”。

  2. 如果这是一个生产服务器,根据您使用的服务,您可以增加docker-machine您正在使用的内存,然后构建您的容器。

于 2016-10-18T12:37:15.777 回答
0

在 Mac 中,如果您使用的是最新的 docker 版本,请执行以下操作。

Docker => Preferences... => Docker Engine => 更改实验功能,如下所示。在这里,我提到了 30GB,您可以根据需要增加。

    {
      "experimental": false,
      "builder": {
        "gc": {
          "enabled": true,
          "defaultKeepStorage": "30GB"
        }
      },
      "features": {
        "buildkit": false
      }
    }
于 2021-09-29T00:53:03.210 回答