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所示。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章