idea docker插件創建鏡像
這裏完全使用idea docker插件進行docker 鏡像創建不依賴 maven的docker插件
idea 安裝docker插件
安裝頁面如下:
這裏已經安裝過了,如果沒有安裝,搜索到docker後點擊 install 進行安裝
插件安裝完成後需要重啓idea 插件才能生效
第一步 配置 docker 遠程連接
關於docker設置遠程連接網上很多教程,這裏僅簡單寫一下 centos7 下如何設置docker 遠程。
設置 docker.service 文件
文件路徑
/lib/systemd/system
網上很多文章表述的文件路徑並不正確,剛學習配置遠程時,找錯了配置文件的問題
添加如下配置
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
應用配置並重啓docker
特別注意一下,重啓docker首先看看docker鏡像是不是需要遷移,因爲重啓docker 容器就會全部停止
應用配置文件命令
systemctl daemon-reload
重啓docker命令
systemctl restart docker
如果 需要將打包的鏡像使用docker 插件上傳的私有倉庫,請先配置私有倉庫(目前主流docker倉庫harbor,nexus3也可以作)
私有倉庫請參考 https://blog.csdn.net/qq_26462567/article/details/106014941
第二步 配置docker插件
將docker 服務地址輸入即可
配置私有倉庫 (如果不考慮上傳鏡像到私有倉庫,可以不考慮這一步)
可以配置多個私有倉庫,使用idea插件的私有倉庫之前需要docker服務配置了私有倉庫,並可以正常登錄私有倉庫進行鏡像拉取與上傳,具體配置可以參考 https://blog.csdn.net/qq_26462567/article/details/106014941
第三步 創建Dockerfile文件
Dockerfile 文件所在位置
不一定非要在這個位置,但是Dockerfile文件的位置和 ADD 命令 拷貝資源有關 ,由於本項目是java項目,打包位置爲 target目錄,因此景Dockerfile文件放到該目錄 ( ADD target/ 命令,表示從dockerfile 目錄下的target文件夾下 )
Dockerfile 源碼
FROM openjdk:8-jre-alpine
# 作者
MAINTAINER keepgoon
ENV TZ Asia/Shanghai
ENV BOOT_OPTIONS=""
ENV BOOT_PROFILES = "--spring.profiles.active=dev"
VOLUME /tmp
ADD target/*.jar app.jar
# 解決時間差
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
RUN echo $TZ > /etc/timezone
ENTRYPOINT ["sh","-c","java -jar -Djava.security.egd=file:/dev/./urandom /app.jar ${BOOT_OPTIONS} ${BOOT_PROFILES}"]
- docker默認採用了美國時間,和北京時間差了8個小時,因此以上配置中還有解決時差的內容
- ADD 命令實在拷貝資源文件,因此要注意Dockerfile和資源文件的相對位置
- 由於 java8 的基礎鏡像很大超過了500M,這裏爲了避免讓鏡像太大,使用了alpine 版作爲基礎鏡像,有效的降低了鏡像的大小
第四步 配置docker 打包
1. 配置運行啓動項
2. 添加docker打包配置
- docker插件不僅可以根據Dockerfile創建鏡像,上傳鏡像,下載鏡像
- 還可以管理鏡像,執行docker compose組件
- 運行Dockerfile創建鏡像之前需要現有資源文件(這裏就是jar包)
3. 配置打包前執行服務(由於本實例爲spring boot項目這裏需要先執行maven打包)
本項目使用maven管理,因此使用maven打包資源 打包命令如下 :
clean package -U -DskipTests
這裏選擇跳過test ,避免test裏面有些錯誤,還能提高打包速度
點擊運行即可執行打包