使用Java後端對Angular應用進行Docker化 -Bhargav

banq發表於2020-06-06

Docker是企業就緒的容器平臺,使組織能夠在任何地方無縫地構建,共享和執行任何應用程式。幾乎每家公司都在對其應用程式進行容器化,以加快生產工作負載,以便它們可以隨時隨地部署,有時一天可以部署幾次。我們可以使用多種方式來構建Angular應用程式。一種方法是使用Java後端對Angular應用進行docker化並建立一個docker映象(映像),以便我們可以每天或有時每天多次部署該映象。

先決條件
前提條件是,必須安裝Docker for Desktop(無論您的作業系統是什麼)。請點選此連結在您的膝上型電腦上安裝Docker。安裝後,您可以使用以下命令檢查Docker資訊或版本。

Github連結:https://github.com/bbachi/angular-java-docker.git
這是一個簡單的專案,演示瞭如何使用Java開發和執行Angular應用程式。我們有一個簡單的應用程式,可以在其中新增使用者,計數並在側面顯示它們,並在需要時檢索它們。

//克隆專案
git clone https://github.com/bbachi/angular-java-docker.git
//構建專案
mvn clean install
java -jar target /users-0.0.1-SNAPSHOT.jar


Docker化應用
我們已經看到了如何以常規方式構建專案和調整應用程式。讓我們看看如何建立一個Dockerfile並在Docker中執行相同的應用程式。
首先,我們建立一個名為docker的資料夾,並使用maven外掛將生成的war檔案放置在該資料夾中。如果檢視pom.xml的構建部分,我們有一個名為repackage的目標,可在構建應用程式時將打包的war檔案放置在docker資料夾中。使用單獨的資料夾的優點之一是,構建映像時不必將整個應用程式程式碼傳送到Docker守護程式。
讓我們轉到應用程式的根目錄並執行mvn命令mvn clean install.現在,我們應該在docker資料夾中擁有war檔案。
其次,我們需要建立一個用於建立Docker映像的Dockerfile。這是一個以FROM命令開頭並以基本映像openjdk:8-jre-alpine開頭的檔案。複製生成的war檔案,最後複製在例項化映像時執行的CMD命令。

# Alpine Linux with OpenJDK JRE
FROM openjdk:8-jre-alpine

# Copy war file
COPY users-0.0.1-SNAPSHOT.jar /users.war

# run the app
CMD ["/usr/bin/java", "-jar", "/users.war"]


如果您位於根目錄中,請更改目錄並構建docker映像,並使用以下命令進行驗證:

// change directory
cd docker
// build the image
docker build -t java-angular .
// list the image
docker images
// login into your registry (Docker Hub)
docker login
// tag the image
docker tag java-angular <repository name>/java-angular
// push the image
docker push <repository name>/java-angular


現在,我們有了docker映像,讓我們執行容器,一旦容器啟動並執行,您可以在http:// localhost:8080 /上訪問應用程式

//執行容器
docker run -d -p 8080:8080 --name javaangular java-angular

//列出容器
docker ps

//  日誌
docker logs javaangular

// exec進入正在執行的容器
docker exec -it javaangular /bin/sh



摘要
  • Docker是企業就緒的容器平臺,使組織能夠在任何地方無縫地構建,共享和執行任何應用程式。
  • 您需要使用maven外掛構建一個war檔案。
  • 為docker建立一個單獨的資料夾,這樣您就不必將所有原始碼傳送到docker守護程式。
  • 使用稱為repackage的maven目標將打包的war檔案放置在docker資料夾中。
  • 構建映像時,請始終從細長的Docker映像開始,並複製war檔案並使用java命令啟動應用程式。
  • 您可以使用此命令標記該映像並將其推送到所需的任何登錄檔中 docker push
  • 最後,您可以使用docker run命令執行docker容器。

相關文章