目录
配置pom.xml
<dependencies>
......
</dependencies>
<!-- 引入部署插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 添加主类名 -->
<mainClass>com.star.ASLApplication</mainClass>
</configuration>
<!-- 多应用springboot系统必须添加 -->
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
打包jar包和Dockerfile
编写Dockerfile,注意端口和jar包版本名称
FROM openjdk:8
ENV APP_PATH=/apps
WORKDIR $APP_PATH
COPY star-blog-2.0-SNAPSHOT.jar $APP_PATH/app.jar
EXPOSE 7777
ENTRYPOINT ["java", "-jar"]
CMD ["app.jar"]
将打包好的jar包和Dockerfile上传至服务器的home目录
进入xshell利用Dockerfile构建springboot应用镜像.png
[root@VM-12-6-centos ~]# cd /home/star-blog/images/admin/
[root@VM-12-6-centos admin]# docker build -t admin:1.0 .
↓
cd /home/star-blog/images/admin/
docker build -t admin:1.0 .
运行已经构建好的容器放开端口并加入旧服务的网桥
docker run -d -p 8888:8888 --name admin --network 71a3 admin:1.0
利用镜像启动admin容器并成功运行
另一项springboot应用服务依法炮制即可
为了项目一体性,需要编写一个docker-compose.yml文件对容器进行统一部署
version: "3.9"
networks:
blog-network:
services:
mysql:
image: mysql:5.7
ports:
- "3306:3306"
volumes:
- /home/mysql5.7/data:/var/lib/mysql
environment:
- "MYSQL_ROOT_PASSWORD=123456"
- "MYSQL_DATABASE=blog"
networks:
- blog-network
redis:
image: redis:5.0.12
ports:
- "6379:6379"
volumes:
- /home/redis/redisdata:/data
networks:
- blog-network
blog:
image: blog:2.0
ports:
- "7777:7777"
depends_on:
- mysql
- redis
networks:
- blog-network
admin:
image: admin:1.0
ports:
- "8888:8888"
depends_on:
- mysql
- redis
networks:
- blog-network
nginx:
image: nginx:1.19.10
ports:
- "80:80"
volumes:
- ./dist:/usr/share/nginx/html:ro
nginxAdmin:
image: nginx:1.19.10
ports:
- "81:81"
volumes:
- ./distAdmin:/usr/share/nginx/html:ro
运行docker-compose.yml文件对容器进行统一部署
cd /home/star-blog
docker-compose up -d