我正在尝试安装tomcat 7在数字海洋CoreOS机器,但面临一些问题,不知道如何解决它们。我遵循以下教程提供的数字海洋,以建立Apache。
https://www.digitalocean.com/community/tutorials/how-to-create-and-run-a-service-on-a-coreos-cluster
我创建了docker容器,并使用以下命令运行它。
docker run -i -t ubuntu:14.04 /bin/bash通过使用以下命令,我成功地安装了tomcat 7。(我按照本教程在docker容器中安装tomcat 7:https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-7-on-ubuntu-14-04-via-apt-get)
sudo apt-get update
sudo apt-get install tomcat7然后,我可以创建名为tomcat@.service的服务单元文件。
[Unit]
Description=Tomcat 7 web server service
After=etcd.service After=docker.service
Requires=tomcat-discovery@%i.service
[Service]
TimeoutStartSec=0 KillMode=none
EnvironmentFile=/etc/environment
ExecStartPre=-/usr/bin/docker kill tomcat%i
ExecStartPre=-/usr/bin/docker rm tomcat%i
ExecStartPre=/usr/bin/docker pull attacomsian/tomcat
ExecStart=/usr/bin/docker run –name tomcat%i -p ${COREOS_PUBLIC_IPV4}:%i:8080 attacomsian/tomcat `service tomcat7 start` -D FOREGROUND
ExecStop=/usr/bin/docker stop tomcat%i
[X-Fleet]
X-Conflicts=tomcat@*.service然后,我创建了tomcat- Etcd @. service,以便使用Etcd注册服务状态,如下所示
[Unit]
Description=Announce Tomcat@%i service
BindsTo=tomcat@%i.service
[Service]
EnvironmentFile=/etc/environment
ExecStart=/bin/sh -c “while true; do etcdctl set /announce/services/tomcat%i ${COREOS_PUBLIC_IPV4}:%i –ttl 60; sleep 45; done”
ExecStop=/usr/bin/etcdctl rm /announce/services/tomcat%i
[X-Fleet]
X-ConditionMachineOf=tomcat@%i.service我向舰队提交并加载了文件,如下所示
fleetctl submit tomcat@.service tomcat-discovery@.service
fleetctl load tomcat@8080.service
fleetctl load tomcat-discovery@8080.service到目前为止一切都很顺利。我没有看到任何错误。但是,当我试图运行服务时,如下所示
fleetctl start tomcat@8080.service但它并没有开始。我看得出来它已经死了。
我是CoreOS的新手,而且还在学习。我在数字海洋公司管理服务器,我对此相当满意。我在谷歌上搜索了这个问题,但没有找到任何帮助。我个人认为,下面这句话实际上是在制造麻烦。
ExecStart=/usr/bin/docker run –name tomcat%i -p ${COREOS_PUBLIC_IPV4}:%i:8080 attacomsian/tomcat `service tomcat7 start` -D FOREGROUND我真的很感激你能帮我把这件事搞清楚。
非常感谢
阿塔科姆
发布于 2014-09-29 09:31:49
所以我建议你看看别人做了什么,然后发现你在码头枢纽登记处上发布了一个类似的问题。
你有没有看过由tutum/tomcat图像所使用的Docker文件?
它运行一个名为"run.sh“的脚本,在前台运行tomcat。
需要理解的是,Docker不是虚拟机,因此没有运行任何服务。您必须显式地运行停靠程序进程,或者设置像runit或supervisord这样的进程管理器。
希望这能有所帮助。
https://stackoverflow.com/questions/26095849
复制相似问题