spring Boot项目使用docker部署
1、虚拟机中以安装了docker
2、为项目中的每个模块引入部署插件,修改每个模块的pom
<!--引入部署插件--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.cxj.UserApplication</mainClass> </configuration> </plugin> </plugins> </build>
3、从根目录进行打包
打包好以后:每个某块下的target都会生成一个jar包
4、创建如下的文件夹结构
5、把打包好的各模块的jar包依次放入上述对应文件夹,并创建一个Dockerfile文件
6、Dockerfile写入的内容
FROM openjdk:8-jre ENV APP_PATH=/apps WORKDIR $APP_PATH COPY user-1.0-SNAPSHOT.jar $APP_PATH/app.jar EXPOSE 8040 ENTRYPOINT ["java","-jar"] CMD ["app.jar"]
7、docker-compose.yml:文件编写(具体参数自行查找其他文章)
version: "3.3" networks: elmdemo_network: volumes: data: services: nacos: image: nacos/nacos-server:2.0.2 ports: - 8848:8848 environment: - JVM_XMS=256m - JVM_XMX=256m - MODE=standalone networks: - elmdemo_network mysql: image: mysql:5.7 ports: - "3306:3306" networks: - elmdemo_network volumes: - data:/var/lib/mysql - ./elmdemo.sql:/docker-entrypoint-initdb.d/elmdemo.sql environment: - "MYSQL_ROOT_PASSWORD=abc123" - "MYSQL_DATABASE=elm" #以下就是自定义的模块,注意build,context就是自己创建的images文件夹各模块对应的位置,dockerfile就是里面的dockerfile文件 account: build: context: ./images/account dockerfile: Dockerfile ports: - "8050:8050" depends_on: - nacos - mysql client: build: context: ./images/client dockerfile: Dockerfile ports: - "8030:8030" depends_on: - nacos menu: build: context: ./images/menu dockerfile: Dockerfile ports: - "8020:8020" depends_on: - nacos - mysql users: build: context: ./images/users dockerfile: Dockerfile ports: - "8040:8040" depends_on: - nacos - mysql order: build: context: ./images/order dockerfile: Dockerfile ports: - "8010:8010" depends_on: - nacos - mysql
8、idea的remote host工具,操作看图:
具体详情可搜索其他攻略,结果如下:在虚拟机下创建一个elmdemo文件夹,把images、docker-compose、mysql的语句文件(我自己用了mysql)直接拖入
9、使用远程链接启动:
在虚拟机中cd 到创建的elmdemo文件夹,然后输入 docker-compose up,即可开始部署
在控制台(另起一个)输入docker ps,查看当前运行的images
访问:不再是localhost,而是虚拟机ip地址