我经常开发示例应用程序。 我尝试了一些想法,运用了一些技巧,并通过示例应用程序与同事和博客读者分享了我的调查结果。 当某人想要了解该技术的实现方式时,他们只需查看源代码,就足以理解这个想法。 但是,如果他们想了解它的实际工作方式并使用它,则需要找到正确的JDeveloper版本,启动它,运行示例应用程序,并可能会用铃鼓跳舞以使其正常工作。 太复杂而不有趣。 有趣的是拥有一个轻量级的Docker容器,其中包含已部署的示例应用程序,每个人都可以轻松地在其Docker环境中运行。 在这篇文章中,我将展示如何创建一个预配置的docker-image-template,该模板将用于使用已部署的示例应用程序创建映像。
由于关键是拥有一个轻量级的容器,并且由于我的示例ADF应用程序很少超出Essentials功能,因此我决定在此之上创建一个运行Tomcat和ADF Essentials的Docker容器。
因此,让我们开始:
1.从Docker Hub拉并运行Tomcat映像:
docker run -it -p 8888:8080 --name adftomcat tomcat:8.0
完成此操作后,您将可以在http:// localhost:8888上观察正在运行的Tomcat。
2.在容器中安装最新的Java:
在单独的终端窗口中,深入容器:
docker exec -it adftomcat bash
并安装Java:
apt-get update
apt-get install software-properties-common
add-apt-repository "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main"
apt-get update
apt-get install oracle-java8-installer
3.从Oracle网站下载ADF Essentials(包括客户端)
这将为您提供档案:adf-essentials.zip和adf-essentials-client-ear.zip。 将它们复制到容器中:
docker cp ~/Downloads/adf-essentials.zip adftomcat:/usr/local/tomcat/lib
docker cp ~/Downloads/adf-essentials-client-ear.zip adftomcat:/usr/local/tomcat/lib
转到容器( docker exec -it adftomcat bash
)并使用-j选项解压缩它们:
unzip -j/usr/local/tomcat/lib/adf-essentials.zip
unzip -j/usr/local/tomcat/lib/adf-essentials-client-ear.zip
4.从以下位置下载javax.mail-api-1.4.6.jar
在这里并将其复制到容器中:
docker cp ~/Downloads/javax.mail-api-1.4.6.jar adftomcat:/usr/local/tomcat/lib
5.在容器中安装nano文本编辑器:
apt-get install nano
6.在容器中的/usr/local/tomcat/bin
文件夹中创建setenv.sh文件:
nano /usr/local/tomcat/bin/setenv.sh
具有以下内容:
JAVA_HOME=/usr/lib/jvm/java-8-oracle
CATALINA_OPTS='-Doracle.mds.cache=simple -Dorg.apache.el.parser.SKIP_IDENTIFIER_CHECK=true'
7.在容器中更新/usr/local/tomcat/conf/context.xml
文件:
nano /usr/local/tomcat/conf/context.xml
并在<Context>部分中添加以下行
<JarScanner scanManifest="false"/>
8.基本上,这足以将ADF应用程序部署到容器。 我从这个预配置的容器中创建了一个映像,以供将来用作模板。
docker commit adftomcat efedorenko/adftomcat
9.开发一个“与Tomcat兼容”的示例ADF应用程序(请参阅Chandresh的博客,其中描述了如何创建适用于Tomcat的ADF应用程序)。 将其部署到战争中并将战争复制到容器中:
docker cp tcatapp.war adftomcat:/usr/local/tomcat/webapps
10.重新启动容器
docker stop adftomcat
docker start -I adftomcat
11.在此处检查应用程序可用性http:// localhost:8888 / MY_CONTEXT_ROOT / faces / main.jsf
12.现在,我们可以从该容器中创建映像,在docker cloud中运行它,或仅与您的同事共享它,以便他们可以在他们喜欢的任何地方运行它。
而已!
翻译自: https://www.javacodegeeks.com/2018/01/running-adf-essentials-tomcat-docker-container.html