idea集合docker實現映象打包一鍵部署
阿新 • • 發佈:2020-08-03
一.伺服器安裝docker
yum install docker
修改配置檔案,開啟2375埠
- [root@microservice ~]# vim /usr/lib/systemd/system/docker.service
- 在ExecStart=/usr/bin/dockerd-current 後面加上-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
- 重新載入配置檔案和啟動:
- systemctl daemon-reload
- systemctl start docker
- 附:docker操作相關命令
- systemctl命令是系統服務管理器指令,它是 service 和 chkconfig 兩個命令組合。
- 啟動docker:systemctl start docker
- 停止docker:systemctl stop docker
- 重啟docker:systemctl restart docker
- 檢視docker狀態:systemctl status docker
- 開機啟動:systemctl enable docker
- 更詳細的請參考:https://blog.csdn.net/linxiyimeng007/article/details/81080223
二、Idea安裝docker支援外掛及配置
1.idea下載docker支援外掛:Docker integration
(快捷鍵Crtl+shift+A 搜尋Docker integration ,然後啟用,重啟idea生效)
2.IDEA Docker外掛配置
File–>Settings–>Build,Execution,Deployment–>Docker–>進行如下配置:
tcp://伺服器ip地址:2375
注意:只要下面提示Connection successfl 就表示連線成功了;
3.配置pom檔案:
- <build>
-
<finalName>${project.artifactId}</finalName>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <configuration>
- <fork>true</fork>
- </configuration>
- </plugin>
- <!-- 跳過單元測試 -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skipTests>true</skipTests>
- </configuration>
- </plugin>
- <!--使用docker-maven-plugin外掛-->
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>1.0.0</version>
- <!--將外掛繫結在某個phase執行-->
- <executions>
- <execution>
- <id>build-image</id>
- <!--使用者只需執行mvn package ,就會自動執行mvn docker:build-->
- <phase>package</phase>
- <goals>
- <goal>build</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <!--指定生成的映象名-->
- <imageName>fred/${project.artifactId}</imageName>
- <!--指定標籤-->
- <imageTags>
- <imageTag>latest</imageTag>
- </imageTags>
- <!-- 指定 Dockerfile 路徑-->
- <dockerDirectory>src/main/docker</dockerDirectory>
- <!--指定遠端 docker api地址-->
- <dockerHost>http://伺服器ip地址:2375</dockerHost>
- <!-- 這裡是複製 jar 包到 docker 容器指定目錄配置 -->
- <resources>
- <resource>
- <targetPath>/</targetPath>
- <!--jar 包所在的路徑 此處配置的 即對應 target 目錄-->
- <directory>${project.build.directory}</directory>
- <!-- 需要包含的 jar包 ,這裡對應的是 Dockerfile中新增的檔名 -->
- <include>${project.build.finalName}.jar</include>
- </resource>
- </resources>
- </configuration>
- </plugin>
- </plugins>
- </build>
附專案目錄結構:
四、根目錄下編寫Dockerfile
- # Dockerfile
- # 基於的映象
- FROM openjdk:8-jdk-alpine
- VOLUME /opt/tmp
- ADD sg-business.jar app.jar
- # -Djava.security.egd=file:/dev/./urandom 可解決tomcat可能啟動慢的問題
- # 具體可檢視:https://www.cnblogs.com/mightyvincent/p/7685310.html
- ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
- # 對外埠
- EXPOSE 8081
五、點選maven的package進行構建
構建成功的資訊
六、點選最下面的docker到docker介面,雙擊docker連上伺服器docker會顯示出伺服器上的docker映象,找到剛剛生成的映象(圖中2),點選建立容器
7.配置docker 容器對外暴露埠和專案介面埠,然後run啟動容器
最後,設定好後,啟動容器,啟動成功後去阿里雲檢視是否啟動成功
IDEA啟動,開啟專案很慢很卡?正確配置記憶體讓IDEA起飛
用IDEA開發專案,預設情況下記憶體會分配比較小,所以開啟程式或者開啟稍微大一點的專案速度就會比較慢。我們可以修改idea的相關配置,來加速程式啟動和專案載入速度。
idea安裝以後的預設配置如下:
預設值設定太小,跑稍微大點的專案或者微服務多模組專案就會出現卡的情況
我的記憶體是16g的,所以我可以給idea分配大一點的記憶體,配置如下:
這個引數根據個人電腦記憶體的大小合適的配置,大了小了都不好,找個合適的進行配置
個人建議8g記憶體配置:
- -Xms512m
- -Xmx1024m
- -XX:ReservedCodeCacheSize=512m
- -XX:+UseConcMarkSweepGC
- -XX:SoftRefLRUPolicyMSPerMB=50
- -ea
- -Dsun.io.useCanonCaches=false
- -Djava.net.preferIPv4Stack=true
- -XX:+HeapDumpOnOutOfMemoryError
- -XX:-OmitStackTraceInFastThrow
16g記憶體配置:
- -Xms1024m
- -Xmx2048m
- -XX:ReservedCodeCacheSize=1024m
- -XX:+UseConcMarkSweepGC
- -XX:SoftRefLRUPolicyMSPerMB=50
- -ea
- -Dsun.io.useCanonCaches=false
- -Djava.net.preferIPv4Stack=true
- -XX:+HeapDumpOnOutOfMemoryError
- -XX:-OmitStackTraceInFastThrow