docker-compose部署Springboot+Mysql

感谢松鼠和健哥的指导!

通过Docker进行一个简单的Jar包的部署。

Jar包镜像的制作

下面的项目会有一点点问题,就是docker-compose文件对不上,请参照下面的进行修改。此外,application.yml也必须进行相应的更改,需要更改的是数据库的username。

City Service项目的github地址: https://github.com/zhaoyangyingmu/CityService

登陆远程主机后

1. 创建文件夹:mkdir city-image && cd city-image。

2. 上传jar包到当前目录,可以通过wget <github jar包地址的方式> 或者 pscp 或者scp的方式。

3. 在当前目录下,创建并编辑Dockerfile文件:touch Dockerfile && vim Dockerfile

FROM java:8
COPY CityService.jar /CityService.jar
CMD ["java","-jar","/CityService.jar"]

4. 生成镜像 (注意最后面有个句号,表示使用当前目录下的Dockerfile进行创建):

docker build -t cityservice .

docker-compose.yml的创建

接下来,进入其他目录创建docker-compose.yml

1. 创建新目录city-service: cd .. -> mkdir city-service -> cd city-service

2. 创建db目录: mkdir db

3. 创建docker-compose.yml文件: touch docker-compose.yml

    最好不要将本地mysql挂载到docker容器里面,否则会出现意想不到的错误!

   内容为:

version: "3"
services:
  mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: '123456'
      MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
      MYSQL_DATABASE: 'city'
      MYSQL_USER: 'city'
      MYSQL_PASSWORD: '123456'
    volumes:
      "./db:/var/lib/mysql"
    networks:
      - city_web
  web:
    image: cityservice:latest
    environment:
    depends_on:
      - mysql
    ports:
      - "4006:8080"
    networks:
      - city_web
networks:
  city_web:

4. 启动容器:  docker-compose up

Mysql初始化

1. 通过docker ps 查看正在运行的容器,找到mysql对应的容器名字:

2. 上传初始化sql文件到该目录,然后拷贝sql文件到容器中: docker cp ./*.sql container_name:/root

2. 通过docker exec -it container_name /bin/bash进入容器

3. 进入mysql: 输入mysql -u root -p 然后输入密码123456

4. source /root/*.sql文件,完成初始化。

DROP DATABASE IF EXISTS city;
CREATE DATABASE city;
USE city;
CREATE TABLE city (
    id INT(11) NOT NULL AUTO_INCREMENT,
    province_id INT(10) NOT NULL,
    city_name varchar(100),
    description text,
    PRIMARY KEY(id)
)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

INSERT INTO city VALUES (1, 1, "city", "desc");

效果图

Springboot的配置

特别注意yml文件中不是localhost而是服务的名字,mysql!!!!!!(因为主机的名字是mysql)

用户名记得改为city,如docker-compose.yml所示。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值