使用Docker构建Oracle ADF应用程序
最近,我的一個(gè)好朋友在使用公共Oracle Maven存儲(chǔ)庫(kù)構(gòu)建ADF應(yīng)用程序v.12.2.1.2時(shí)經(jīng)常遇到問題。 他要求我檢查它是否對(duì)我有用。 好吧……沒有。 因此,存儲(chǔ)庫(kù)存在一些問題。 為了使實(shí)驗(yàn)整潔并避免對(duì)我的工作環(huán)境造成任何影響,我決定在docker容器中運(yùn)行測(cè)試。
而且即使我不能幫助我的朋友(拋出一些依賴異常也無法正常工作),作為此檢查的結(jié)果,我得到了一個(gè)可重用的docker映像,該映像用作ADF應(yīng)用程序的預(yù)配置構(gòu)建機(jī)器(適用于12.2版)。 1.3那時(shí),Oracle Maven存儲(chǔ)庫(kù)運(yùn)行良好。
這是我所做的:
1.拉并運(yùn)行ubuntu Docker映像
$: docker run -it --name adfbuilder ubuntu2.在adfbuilder容器中安裝Java
apt-get install software-properties-common python-software-properties add-apt-repository ppa:webupd8team/java apt-get update apt-get install oracle-java8-installer3.在adfbuilder容器中安裝Maven
只需下載Maven二進(jìn)制文件并將其解壓縮到某個(gè)文件夾中,然后復(fù)制到容器中即可:
docker cp ~/Downloads/apache-maven-3.5.2 adfbuilder:/opt/apache-maven-3.5.2更新容器中的PATH環(huán)境變量
export PATH=$PATH:/opt/apache-maven-3.5.2/bin完成后, mvn應(yīng)該可用。 在容器中運(yùn)行它,它將在用戶家中創(chuàng)建一個(gè)隱藏的.m2文件夾。
4.在adfbuilder容器中配置Maven以與Oracle Maven存儲(chǔ)庫(kù)一起使用
只需放入隱藏的.m2文件夾
docker cp settings.xml adfbuilder:/root/.m2/settings.xml包含以下內(nèi)容的settings.xml文件:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"><servers><server><id>maven.oracle.com</id><username>eugene.fedorenko@flexagon.com</username><password><MY_PASSWORD></password><configuration><basicAuthScope><host>ANY</host><port>ANY</port><realm>OAM 11g</realm></basicAuthScope><httpConfiguration><all><params><property><name>http.protocol.allow-circular-redirects</name><value>%b,true</value></property></params></all></httpConfiguration></configuration></server></servers><profiles><profile><id>main</id><activation><activeByDefault>true</activeByDefault></activation><repositories><repository><id>maven.oracle.com</id><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots><url>https://maven.oracle.com</url><layout>default</layout></repository></repositories><pluginRepositories><pluginRepository><id>maven.oracle.com</id><url>https://maven.oracle.com</url></pluginRepository></pluginRepositories></profile></profiles> </settings>基本上,這足以在容器中編譯Maven配置的ADF應(yīng)用程序。 我們需要確保可以從容器訪問我們的應(yīng)用程序的源代碼。 可以通過將源文件夾映射為從容器可見或僅將其復(fù)制到容器中來完成。
docker cp / mywork / MySampleApp adfbuilder:/ opt / MySampleApp
完成此操作后,我們可以運(yùn)行以下命令來編譯應(yīng)用程序:
docker exec adfbuilder mvn -f /opt/MySampleApp/pom.xml編譯
5.將JDeveloper二進(jìn)制文件復(fù)制到容器中
由于我們希望超越這一點(diǎn),不僅能夠編譯,而且能夠生成可部署的工件(耳朵,罐子等),所以我們需要將JDeveloper二進(jìn)制文件放入容器中(基本上, maven需要ojdeploy)。 我剛剛將Mac_目錄中的Oracle_Home文件夾復(fù)制到了容器中:
docker cp /My_Oracle_Home adfbuilder:/opt/Oracle_Home所以,現(xiàn)在我能夠建立一個(gè)耳朵我的容器應(yīng)用程序:
docker exec adfbuilder mvn? -f /opt/MySampleApp/pom.xml package -DoracleHome=/opt/Oracle_Home對(duì)于第一次運(yùn)行,它可能會(huì)要求您提供JDK的路徑
[INFO] Type the full pathname of a JDK installation (or Ctrl-C to quit), the path will be stored in /root/.jdeveloper/12.2.1.3.0/product.conf/usr/lib/jvm/java-8-oracle 6.提交對(duì)容器的更改
我們需要做的最后一件事是將更改提交到容器:
這將創(chuàng)建一個(gè)新的ubuntu映像,其中包含我們應(yīng)用的所有更改。 我們可以輕松地在基礎(chǔ)架構(gòu)中的任何位置運(yùn)行該映像,并將其用作ADF應(yīng)用程序的構(gòu)建機(jī)器。 它的優(yōu)點(diǎn)在于我們可以在像Docker Cloud(由AWS,Microsoft Azure,Digital Ocean等支持)或Oracle容器云服務(wù)等云中運(yùn)行它,也可以隨便使用它。 使用這種方法,云中的服務(wù)器可以為您構(gòu)建應(yīng)用程序,這通常是一項(xiàng)非常耗資源的工作。
就是這樣!
翻譯自: https://www.javacodegeeks.com/2018/01/building-oracle-adf-applications-docker.html
總結(jié)
以上是生活随笔為你收集整理的使用Docker构建Oracle ADF应用程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暴力摩托2008电脑版(暴力摩托2008
- 下一篇: jpa 异常捕获_JPA和CMT –为什