我开始使用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
答案 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
cf ic build --tag myhttp .
cf ic run --name myhttp -p 80 registry.ng.bluemix.net/<yourNameSpace>/myhttp
cf ic bind <IP> myhttp