使用Java后端对Angular应用进行Docker化 -Bhargav


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容器。