BlueMix上的Apache2容器不会熬夜

时间:2017-01-26 17:06:21

标签: apache docker containers ibm-cloud dockerfile

我开始使用IBM的形象:

registry.ng.bluemix.net/ibmnode:latest

这是Ubuntu 14.04,我然后添加Apache2,执行我的网站的一些文件副本,然后EXPOSE 443.最后,我使用以下内容调用bash脚本:

#!/bin/bash
set -e
rm -f /usr/local/apache2/logs/httpd.pid
exec /usr/sbin/apache2ctl -DFOREGROUND

当我在本地运行容器时,它工作正常并提供我需要的东西。当BlueMix从Dockerfile构建时,它可以正常工作。然后成功部署到容器。部署后,容器立即注册为“STOPPED”。重启会启动它,然后在几秒钟内退回。 'cf ic logs my-process-id'没有显示任何反馈。

我尝试过的其他事情: ENTRYPOINT [“/ usr / sbin / apache2ctl”,“ - D”,“FOREGROUND”] 使用service apache2 restart

Dockerfile:

FROM registry.ng.bluemix.net/ibmnode:latest

RUN apt-get install -y apache2
RUN apt-get install -y nano


# ADD SSL
RUN a2enmod ssl
RUN a2enmod proxy_http


WORKDIR /var/www/dist
RUN mv ./* /var/www/html

COPY docker/httpd-foreground.sh /usr/local/bin/
EXPOSE 443
CMD ["httpd-foreground.sh"]

的httpd-foreground.hs:

#!/bin/bash
set -e
rm -f /usr/local/apache2/logs/httpd.pid
exec /usr/sbin/apache2ctl -DFOREGROUND

1 个答案:

答案 0 :(得分:1)

您要做的是获取节点映像,安装apache并覆盖命令,并尝试在前台运行。这不是在bluemix上运行apache容器的好方法。

你应该这样做:  1.按照此处的信息将 httpd 图像拉到本地,将本地图像推送到您的bluemix名称空间。   - docker pull httpd:2.4   - docker tag httpd:2.4 registry.ng.bluemix.net//httpd   - docker push registry.ng.bluemix.net//http  2.将图像推送到命名空间后,您可以使用Dockerfile创建自定义图像,请注意我假设您的网站内容位于public-html文件夹中

  

FROM registry.ng.bluemix.net//httpd:2.4 COPY ./public-html/   / usr / local / apache2 / htdocs / EXPOSE 80

  1. 构建您的形象
  2. cf ic build --tag myhttp .
    
    1. 运行容器:
    2. cf ic run --name myhttp -p 80 registry.ng.bluemix.net/<yourNameSpace>/myhttp
      
      1. 使用
      2. 绑定IP地址
        cf ic bind <IP> myhttp
        
        1. 使用您绑定的IP
        2. 访问您的容器