Tag: Tomcat

与ActiveMQ链接的Docker Tomcat

我需要一个托pipeTomcat和ActiveMQ的容器。 我设法使用supervisord来做到这一点,容器完美地工作。 但是后来我认为这个概念是不好的,因为我在Tomcat中部署一场新的战争时,我不想失去我的主动MQ信息。 所以我做了2个容器并连接它们,一个用于activemq,一个用于tomcat。 我可以看到,tomcat链接到activemq,但在tomcat中部署的战争对activeMQ没有任何作用。 我的问题是:任何提示我怎么才能检查他们为什么不沟通,即使容器链接,创build环境等? 另外如果有人可以链接一个git的中心仓库,其中有人正在使用tomcat和activemq链接2个不同的容器? 另外,如果你们中的一些人知道一个很好的做法bloog,与docker中activemq的使用有关,那么当重新创build容器时,我担心丢失的消息。 从我的angular度来看,docker集装箱是应该能够以完全相同的状态从图像构build的东西。 使用活动的MQ这有点棘手,我不知道activemq在磁盘上保存消息的位置,以及如果共享卷将修复docker的持久性问题。 另一方面,你通常不会重新部署一个带有activemq的容器,但是如果发生这种情况,主机重启( – >销毁所有的容器),那么安全措施是什么?

为什么docker tomcat没有使用共享目录中的属性文件覆盖war属性文件?

我用下面的docker脚本启动了一个Tomcat docker容器: FROM tomcat:7-jre7 #Get the config into the shared directory before the tomcat classloader does a sweep – kill tomcat for now CMD ["catalina.sh", "stop"] #Override the properties with a shared dir ADD catalina.properties /usr/local/tomcat/conf/catalina.properties ADD application.properties /usr/local/tomcat/properties/application.properties ADD application.war /usr/local/tomcat/webapps/ EXPOSE 8080 CMD ["catalina.sh", "run"] 这是标准的Catalina属性文件 。 这是我改变的唯一线路: shared.loader=/usr/local/tomcat/properties 其他信息 – 在war文件的根目录下有一个稍微版本的application.properties 。 […]

如何激活/钝化aws中的docker集装箱

我有一个有状态的应用程序运行在Tomcat下的专有数据库。 我已经成功将其docker化在我的机器上,并且很容易在AWS上运行它的单个实例。 数据库不是很大(在一个演出),每个客户都希望自己的版本。 所以,我们的计划是每个客户基本上都得到他自己的系统副本。 每个客户将有less量的系统用户(通常是1,也许10),通常每周只用几个小时。 当我们得到一个新客户XYZ时,我们将为他们的系统创build一个新的Docker容器。 他们会去“XYZ.mycompany.com”并login到系统。 然后,我们应该为他们旋转容器。 最终他们会注销或超时。 那么我们应该钝化容器。 那么,AWS的哪一部分将会处理Docker容器的激活/钝化呢? 这与容器无状态的通常AWS架构不同。 我可以想象一个http前端(proxy?),它接受http请求并决定它们去哪个容器,如果需要的话启动容器。 有没有我可以使用的标准软件包,还是我必须写一个?

使用Supervisor在单个Dockerfile中部署多个Tomcat实例

我有以下的Dockerfile。 FROM java:8-jre RUN apt-get update && apt-get install -y supervisor RUN mkdir -p /var/log/supervisor COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf ##################################################################### ENV CATALINA_HOME /usr/local/tomcatppsraptor #ENV PATH $CATALINA_HOME/bin:$PATH RUN mkdir -p "$CATALINA_HOME" WORKDIR $CATALINA_HOME # see https://www.apache.org/dist/tomcat/tomcat-8/KEYS RUN gpg –keyserver pool.sks-keyservers.net –recv-keys \ 05AB33110949707C93A279E3D3EFE6B686867BA6 \ 07E48665A34DCAFAE522E5E6266191C37C037D42 \ 47309207D818FFD8DCD3F83F1931D684307A10A5 \ 541FBE7D8F78B25E055DDEE13C370389288584E7 \ 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 \ 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED \ 9BA44C2621385CB966EBA586F72C284D731FABEE \ A27677289986DB50844682F8ACB77FC2E86E29AC […]

停止写入标准输出和stderror的Tomcat

我们使用docker。 我们使用fluentd作为我们的docker集装箱的日志驱动程序。 我们使用tomcat来为Java应用程序提供服务。 当在java应用程序中抛出exception时,我们使用log4j来处理这个exception。 为了控制日志logging,我已经根据https://tomcat.apache.org/tomcat-6.0-doc/logging.html中的说明在tomcat上安装了log4j。 这是我正在使用的configuration。 log4j.rootLogger = INFO, CATALINA # Define all the appenders log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina log4j.appender.CATALINA.Append = true log4j.appender.CATALINA.Encoding = UTF-8 # Roll-over the log once per day log4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log' log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout log4j.appender.CATALINA.layout.ConversionPattern = stewart %d [%t] %-5p %c- %m%n log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost log4j.appender.LOCALHOST.Append […]

docker tomcat与外部WAR的使用

我一直在寻找docker上的tomcat的最佳实践,以及如何链接一个WAR文件。 碰到的两种方法是: 扩展基础Tomcat映像并将WAR文件复制到/webapps ,然后重build自己的映像。 使用两个容器,第一个裸露的tomcat和第二个数据容器,比如busybox,这个容器是WAR文件。 然后,你可以在/webapps的tomcat容器上挂载busybox容器,WAR文件将被有效地拾取。 我喜欢第二种方法的声音,但是我一直无法成功地使这个工作。 我试图用busybox创build一个数据容器,然后使用docker compose来启动服务。 WAR不会被复制,busybox容器会立即停止。 数据容器Dockerfile: FROM busybox RUN mkdir /webapps COPY ./demo.war /webapps/demo.war VOLUME ['/webapps'] 泊坞窗,compose.yml version: '2' services: data: image: <Data Container Image> tomcat: image: tomcat:8.5.4-jre8 volumes_from: – data ports: – "678:8080" WAR文件不会被复制,并且docker-compose up运行后,busybox容器会立即退出。 任何援助将不胜感激。

Java webapp到在本地主机上的Docker容器中运行的Tomcat 8

对于我的springmvc应用程序,我使用docker-compose.yml db: build: ./db ports: – "5432:5432" volumes_from: – app-db-data app-web: build: ./web ports: – "8080:8080" links: – db app-db-data: image: cogniteev/echo command: echo 'Data Container for PostgreSQL' volumes: – /var/lib/postgresql/data 有两个Dockerfiles ./web FROM tomcat:8-jre8 MAINTAINER Sergii D ADD MyApp-1.0-SNAPSHOT.war /usr/local/tomcat/webapps/ 。/D b FROM postgres:9.3 MAINTAINER Sergii D ENV POSTGRES_USER admin ENV POSTGRES_PASSWORD pass ENV […]

Jenkins docker容器中的“docker cp”命令将文件复制到目录中

我正在Docker容器中运行Jenkins服务器。 我通过以下命令启动了Jenkins容器: sudo docker run –name jenkins -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock -v / usr / bin / docker:/ usr / bin / docker -d weizhou /jenkins 在Jenkins的工作中,我想将构build好的.war复制到本地机器(即从Docker容器中)并启动另一个Tomcat docker服务器。 然而,在我使用命令docker docker cp ,docker文件中的文件变成了一个目录,也就是说,rpm.war文件变成了rpm.war目录,并没有任何内容。 我应该如何解决这个问题,非常感谢。 下面是我在jenkins作业的Execute shell中的脚本文章。 sudo docker exec tomcat /usr/local/tomcat/bin/catalina.sh stop sudo docker rm -f tomcat sudo rm /home/rpm.war sudo docker cp jenkins:/var/jenkins_home/workspace/rpm/target/rpm.war /home/ sudo […]

在Docker中优雅地停止tomcat

我在运行tomcat的Docker容器上有以下要求: 启动tomcat作为后台进程(catalina.sh启动) 运行应用特定的configuration 停止tomcat(catalina.sh停止) 在前台启动tomcat(catalina.sh运行) 但是,在tomcat初始化之前,因为应用程序configuration已经启动,所以我无法使其工作。 而且,由于tomcat仍处于closures过程中,因此步骤4失败。 我如何改变这个过程: 启动tomcat作为后台进程 等待启动 运行应用特定的configuration closurestomcat 等待关机 启动tomcat作为前台进程。 我已经破解了以下内容,以便我的开发活动可以继续进行,但是如果容器停止,以下代码将不会正确closurestomcat。 case $COMMAND in start ) echo "Configuring OpenAM.." cp /artifacts/openam.war /opt/tomcat/webapps/openam.war cat /opt/openam-install.properties /opt/tomcat/bin/startup.sh sleep 20 ls -lart cd /artifacts/configurator unzip configurator.zip java -jar openam-configurator-tool-13.5.0.jar –acceptLicense –file /opt/openam-install.properties echo "Configuration Complete." tail -f /opt/tomcat/logs/catalina.out ;; 你可能已经猜到了。 编写shell脚本非常糟糕。 任何帮助将不胜感激。

Docker预期在前台运行,但在后台运行

据我所知,用-d选项可以使Docker容器在Daemon或Background中运行,不用-d选项就可以使Docker容器在Foreground中运行,并且cmd被阻塞。 我做了一些小testing: Docker容器是由tomcat:8.0 Docker Image制作的。 Docker容器的名字叫peace_allen,不带-d选项运行。 Docker容器的名字pensive_lichterman使用-d选项运行。 在所有cmds被closures之前的第一个docker ps -a命令。 所有cmdsclosures后,第二个docker ps -a命令。 超过5分钟后,第三个docker ps -a命令closures所有cmds。 每个Docker容器都在每个cmd中运行。 结果: 在所有cmdsclosures后,所有Docker容器仍在运行。 结论: cmd不阻塞。 Docker容器(特别是tomcat的Docker Image)在后台运行,因为所有的阻塞cmds都closures了,但Docker容器仍在运行。 我期望没有-d选项,当按下CTRL + C或closuresCMDdocker集装箱被终止。 但结果不是。 这里有什么问题?