中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker中怎么部署一個java和mysql的獨立項目環境

發布時間:2021-07-30 14:43:12 來源:億速云 閱讀:282 作者:Leah 欄目:大數據

docker中怎么部署一個java和mysql的獨立項目環境,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

首先我希望將jar打包到docker中,不用每次拷來拷去,也可以用文件夾,提前定義一個文件夾,把jar包放進去docker啟動時自動啟動jar包。

打包需要用到dockerfile文件,在運行目錄下創建Dockerfile配置如下:

FROM openjdk:8-jdk-alpine
ENV LANG C.UTF-8
RUN apk --update add ttf-dejavu && \
      rm -rf /var/cache/apk/*
MAINTAINER "haolin#189.cn"
LABEL description="suishoupai backend"
WORKDIR app
ADD ruoyi-admin.jar /app/app.jar
EXPOSE 8081
CMD java -jar /app/app.jar

FROM openjdk:8-jdk-alpine 是說我們用的基礎鏡像是openjdk發布的8-jdk-alpine包,用alpine linux打包的。

ENV LANG C.UTF-8 是說我們要采用UTF-8環境

RUN apk --update add ttf-dejavu && \  rm -rf /var/cache/apk/*
是安裝字體庫并刪除緩存的安裝包,字體庫是用來生成驗證碼等功能使用。

MAINTAINER 、LABEL description ,請自行設置
WORKDIR app工作目錄這個不需要修改

ADD test-admin.jar /app/app.jar 添加jar包到鏡像中,如果是開發環境可以放在目錄里,跟打包進去是一樣的。

CMD java -jar /app/app.jar 啟動jar包,按照自己的需要設置啟動參數。

完成之后執行docker build -t 用戶名/鏡像名:1.01 . 就可以完成鏡像封裝了

通過docker image ls查看鏡像就能看到打好的鏡像包。

打包完java鏡像之后就需要打包mysql鏡像了,首先在運行目錄下創建docker-compose.yaml。

想讓兩個docker共用一個ip,我覺得通過docker-compose配置更清晰,主要思路是創建兩個service:

  • 一個app服務使用我們的java鏡像,網絡模式設置為service:mysql就可以使用mysql的網卡,

  • 一個mysql服務,使用mysql:5.7這里需要注意默認的mysql使用的編碼方式不支持中文,需要配置,并設置時區:

command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
  environment:
   TZ: Asia/Shanghai

而后可以有選擇的配置要創建的數據庫名、root密碼等。

最后將mysql的data目錄映射到項目目錄下的data目錄,并將app中的端口發布出來。共外界訪問。

配置完成之后通過:

  1. docker-compose up創建鏡像

  2. 通過docker-compose start啟動鏡像

  3. 通過docker-compose stop停止鏡像

  4. docker-compose down刪除鏡像。

   啟動后可以通過docker ps查看已啟動的服務,或者通過docker ps -a查看所有服務。

完整配置文件。如下:

version: '3'
services:
 app:
  container_name: XXXX_app
  image: haol666/XXXX:1.01
  network_mode: "service:mysql"
  depends_on:
   - mysql
 mysql:
  container_name: xxxx_mysql
  image: mysql:5.7
  command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
  environment:
   TZ: Asia/Shanghai
   MYSQL_DATABASE: XXXX
   MYSQL_ROOT_PASSWORD: XXXX
   MYSQL_USER: 'XXXX'
   MYSQL_PASS: 'XXXX'
   MYSQL_HOST: '%'
  volumes:
   - ./data:/var/lib/mysql
  ports:
   - "8080:443"
  expose:
   - "8080"


 

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

应城市| 宽甸| 新乡市| 望奎县| 博爱县| 美姑县| 香格里拉县| 八宿县| 渝中区| 内乡县| 光山县| 启东市| 调兵山市| 奇台县| 江北区| 临汾市| 革吉县| 什邡市| 南皮县| 罗甸县| 沁水县| 乐陵市| 甘德县| 沁源县| 景德镇市| 贵州省| 杭锦后旗| 新乡县| 通许县| 昆明市| 当阳市| 泸溪县| 吉安市| 修水县| 博野县| 静宁县| 犍为县| 公主岭市| 肥乡县| 洛隆县| 衡阳县|