Compose简单编排微服务(Spring boot+mysql+redis)

1.准备spring boot项目,可以在百度云下载

链接:https://pan.baidu.com/s/1AIW8q7sNnXU3-MRC5vdn8g
提取码:ofs3

2.项目生成jar包,上传到Linux服务器上,自己创建文件夹

 3.编写Dockerfile

# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER zgbo
# VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为docker_word.jar
ADD docker_word-0.0.1-SNAPSHOT.jar docker_word.jar
# 运行jar包
RUN bash -c 'touch /docker_word.jar'
ENTRYPOINT ["java","-jar","/docker_word.jar"]
#暴露6001端口作为微服务
EXPOSE 8090

4.构建镜像

docker build -t docker_word:1.0 .

docker images

5.编写docker-compose.yml

version: "3"
services:
  microService:
    image: docker_word:1.0
    container_name: dockerWord
    ports:
      - "8090:8090"
    volumes:
      - /app/microService:/data
    networks: 
      - work_net 
    depends_on: 
      - redis
      - mysql
  redis:
    image: redis:6.0.8
    ports:
      - "6379:6379"
    volumes:
      - /app/redis/redis.conf:/etc/redis/redis.conf
      - /app/redis/data:/data
    networks: 
      - work_net
    command: redis-server /etc/redis/redis.conf
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: 'root123'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'db_text'
      MYSQL_USER: 'root1'
      MYSQL_PASSWORD: 'root1'
    ports:
       - "3306:3306"
    volumes:
       - /app/mysql/db:/var/lib/mysql
       - /app/mysql/conf/my.cnf:/etc/my.cnf
       - /app/mysql/init:/docker-entrypoint-initdb.d
    networks:
      - work_net
    command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
networks: 
   work_net: 

 6.启动所有docker-compose服务

前台执行 docker-compose up
或者
后台执行 docker-compose up -d

 7.连接mysql创建库和表

CREATE TABLE `t_user` (
  `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `username` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '用户名',
  `password` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '密码',
  `sex` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '性别 0=女 1=男 ',
  `deleted` TINYINT(4) UNSIGNED NOT NULL DEFAULT '0' COMMENT '删除标志,默认0不删除,1删除',
  `update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`)
) 

 8.测试

http://172.16.15.187:8090/swagger-ui.html#/user-controller

 mysql数据库也保存成功

 redis保存成功

注意点

docker-compose.yml中创建了网络 所以要修改spring boot配置文件(不修改可以,使用ip访问)

posted @ 2022-10-26 16:16  Dabo丶  阅读(113)  评论(0编辑  收藏  举报