我在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中更改内存分配。多数情况下,增长会起作用。
我发现,当服务器耗尽资源和大部分内存时,大多数情况下都会发生这种情况。您有两个选项。
-
如果这是一个临时服务器,那么您可以使用
docker-compose down
关闭服务。然后构建容器docker-compose build
,完成后,重新启动服务器docker-compose up -d
。-d
表示与您的终端"分离"。 -
如果这是一个生产服务器,根据您使用的服务,您可以增加正在使用的
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。