错误:在Tutum上构建Docker期间,构建过程返回了退出代码137



我在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在之后返回消息"Successfully Build eeb9646f9317",但也返回"ERROR:Build process return exit code 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/ aServerName 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

知道吗?

在Mac中,要解决这个问题,您可能需要尝试在Docker>Preference>memory中更改内存分配。多数情况下,增长会起作用。

我发现,当服务器耗尽资源和大部分内存时,大多数情况下都会发生这种情况。您有两个选项。

  1. 如果这是一个临时服务器,那么您可以使用docker-compose down关闭服务。然后构建容器docker-compose build,完成后,重新启动服务器docker-compose up -d-d表示与您的终端"分离"。

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

以上所有答案都是正确的。

然而,今天我发现了另一个案例(我的坏),我在错误的背景下。即使我增加了内存,我仍然有同样的错误。因此,请始终验证您所在的上下文是否正确。

❯ docker context ls
NAME                 DESCRIPTION                               DOCKER ENDPOINT                                    KUBERNETES ENDPOINT                 ORCHESTRATOR
default              Current DOCKER_HOST based configuration   unix:///var/run/docker.sock                        https://127.0.0.1:59074 (default)   swarm
desktop-linux *                                                unix:///Users/mateonunez/.docker/run/docker.sock                                       

只要改变你的背景。

❯ docker context use default
default
Current context is now "default"

我希望它能帮助到别人。

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

Docker=>首选项=>Docker引擎=>更改实验特性,如下所示。这里我已经提到了30GB,您可以根据需要增加。

    {
      "experimental": false,
      "builder": {
        "gc": {
          "enabled": true,
          "defaultKeepStorage": "30GB"
        }
      },
      "features": {
        "buildkit": false
      }
    }

尝试使用Docker构建工具包。通过在生成命令之前使用DOCKER_BUILDKIT=1。

相关内容

  • 没有找到相关文章

最新更新