使用docker-compose定製Javaweb環境

背景

爲了標準化流程與簡易化部署,本項目構建一套簡易的 JAVA 的開發/運行環境,最終達到 build,ship,run!

依賴

快速部署步驟

  1. $ git clone https://gitee.com/wuweixiang/javaweb-compose.git
  2. $ cd javaweb-compose
  3. $ docker-compose up
  4. 訪問 http://127.0.0.1

運維命令:

$ docker-compose help   # docker-compose 命令幫助
$ docker-compose up     # 創建並啓動 docker 編排服務
$ docker-compose down   # 停止並移除 docker 編排服務 (更改配置文件時建議使用)
$ docker-compose exec javaweb-compose bash # ssh 登入 java 容器

數據庫信息

  • hostname: mysql

此處的數據庫連接地址 hostname 值爲 mysql ,容器中會在自己的 /etc/hosts 中添加一條 1xx.xx.xx.xx mysql 的 host,這會將 http://mysql 這個地址指向 mysql 容器的實際內網地址,等效於常見的 http://localhost

數據持久化

容器內的數據會隨着容器的銷燬而丟失,所以需要配置 docker-compose.yml 文件將以下目錄同步到你的物理機目錄進行持久化:

  • /var/lib/mysql MySQL 的文件存放目錄,必須掛載,否則銷燬容器後數據丟失。
  • /usr/local/tomcat/logs Tomcat 的日誌目錄,掛載後查看日誌無須進入容器內部。
  • /data Redis數據存儲目錄。
  • /data/activemq activemq數據存儲目錄。

項目部署

數據庫信息,暴露端口等信息都在 docker-compose.yml 中配置,一切調試完成後可在啓動命令後添加 -d 參數,讓其後臺啓動,此時如果想實時查看啓動日誌可以使用 docker-compose logs -f 進行查看。

# 後臺啓動運行
$ docker-compose up -d

# 跟蹤查看啓動日誌
$ docker-compose logs -f

版本信息

  • JAVA1.8
  • MySQL5.7
  • Tomcat8.5.35
  • Redis5.0.2
  • ActiveMQ5.14.3

版本信息可在 Dockerfile 中進行修改,修改 Dockerfile 後需要將 docker-compose 中的構建方式改爲構建本地鏡像:

# 免構建鏡像
# image: redis:5.0.2
# 構建本地鏡像
  build: ./redis

修改完成後啓動時需要重新構建鏡像:

$ docker-compose up --build

目錄結構

javaweb-compose/
├── activemq
│   ├── data  # 容器數據掛載目錄
│   ├── Dockerfile   # activemq 構建文件
│   └── logs   # 容器日誌掛載目錄
├── docker-compose.yml  # docker-compose 配置文件
├── gitclone-javaweb
│   └── readme.md 
│        方式一(TODO): 
│        在./tomcat下通過 Shell腳本(通過Dockerfile去觸發)
│        1. 將代碼Clone到此目錄下
│        2. 編譯成war
│        3. 將war包放置./tomcat/webapps/下
│        方式二:
│        直接將war包放置./tomcat/webapps/下
├── mysql
│   ├── conf  # 容器配置掛載目錄
│   ├── data  # 容器數據掛載目錄
│   └── Dockerfile   # MySQL 構建文件
├── README.md
├── redis
│   ├── conf   # 容器配置掛載目錄
│   ├── data   # 容器數據掛載目錄
│   └── Dockerfile
└── tomcat
    ├── conf    # 容器配置掛載目錄
    ├── Dockerfile   # Tomcat 構建文件
    ├── logs   # 容器日誌掛載目錄
    └── webapps
        └── ROOT   # tomcat默認ROOT項目
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章