idea集合docker實現鏡像打包一鍵部署


一.服務器安裝docker

yum install docker

修改配置文件,打開2375端口

  1.  
    [root@microservice ~]# vim /usr/lib/systemd/system/docker.service
  2.  
    在ExecStart=/usr/bin/dockerd-current 后面加上-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock \
  3.  
    重新加載配置文件和啟動:
  4.  
    systemctl daemon-reload
  5.  
    systemctl start docker
  6.  
     
  7.  
    附:docker操作相關命令
  8.  
    systemctl命令是系統服務管理器指令,它是 service 和 chkconfig 兩個命令組合。
  9.  
    啟動docker:systemctl start docker
  10.  
    停止docker:systemctl stop docker
  11.  
    重啟docker:systemctl restart docker
  12.  
    查看docker狀態:systemctl status docker
  13.  
    開機啟動:systemctl enable docker
  14.  
    更詳細的請參考: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文件:

  1.  
    <build>
  2.  
    <finalName>${project.artifactId}</finalName>
  3.  
    <plugins>
  4.  
    <plugin>
  5.  
    <groupId>org.springframework.boot</groupId>
  6.  
    <artifactId>spring-boot-maven-plugin</artifactId>
  7.  
    <configuration>
  8.  
    <fork>true</fork>
  9.  
    </configuration>
  10.  
    </plugin>
  11.  
    <!-- 跳過單元測試 -->
  12.  
    <plugin>
  13.  
    <groupId>org.apache.maven.plugins</groupId>
  14.  
    <artifactId>maven-surefire-plugin</artifactId>
  15.  
    <configuration>
  16.  
    <skipTests>true</skipTests>
  17.  
    </configuration>
  18.  
    </plugin>
  19.  
    <!--使用docker-maven-plugin插件-->
  20.  
    <plugin>
  21.  
    <groupId>com.spotify</groupId>
  22.  
    <artifactId>docker-maven-plugin</artifactId>
  23.  
    <version>1.0.0</version>
  24.  
    <!--將插件綁定在某個phase執行-->
  25.  
    <executions>
  26.  
    <execution>
  27.  
    <id>build-image</id>
  28.  
    <!--用戶只需執行mvn package ,就會自動執行mvn docker:build-->
  29.  
    <phase>package</phase>
  30.  
    <goals>
  31.  
    <goal>build</goal>
  32.  
    </goals>
  33.  
    </execution>
  34.  
    </executions>
  35.  
    <configuration>
  36.  
    <!--指定生成的鏡像名-->
  37.  
    <imageName>fred/${project.artifactId}</imageName>
  38.  
    <!--指定標簽-->
  39.  
    <imageTags>
  40.  
    <imageTag>latest</imageTag>
  41.  
    </imageTags>
  42.  
    <!-- 指定 Dockerfile 路徑-->
  43.  
    <dockerDirectory>src/main/docker</dockerDirectory>
  44.  
    <!--指定遠程 docker api地址-->
  45.  
    <dockerHost>http://服務器ip地址:2375</dockerHost>
  46.  
    <!-- 這里是復制 jar 包到 docker 容器指定目錄配置 -->
  47.  
    <resources>
  48.  
    <resource>
  49.  
    <targetPath>/</targetPath>
  50.  
    <!--jar 包所在的路徑 此處配置的 即對應 target 目錄-->
  51.  
    <directory>${project.build.directory}</directory>
  52.  
    <!-- 需要包含的 jar包 ,這里對應的是 Dockerfile中添加的文件名 -->
  53.  
    <include>${project.build.finalName}.jar</include>
  54.  
    </resource>
  55.  
    </resources>
  56.  
    </configuration>
  57.  
    </plugin>
  58.  
    </plugins>
  59.  
    </build>

附項目目錄結構:

四、根目錄下編寫Dockerfile

  1.  
    # Dockerfile
  2.  
    # 基於的鏡像
  3.  
    FROM openjdk:8-jdk-alpine
  4.  
     
  5.  
    VOLUME /opt/tmp
  6.  
     
  7.  
    ADD sg-business.jar app.jar
  8.  
     
  9.  
    # -Djava.security.egd=file:/dev/./urandom 可解決tomcat可能啟動慢的問題
  10.  
    # 具體可查看:https://www.cnblogs.com/mightyvincent/p/7685310.html
  11.  
    ENTRYPOINT [ "java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
  12.  
     
  13.  
    # 對外端口
  14.  
    EXPOSE 8081

五、點擊maven的package進行構建

構建成功的信息

六、點擊最下面的docker到docker界面,雙擊docker連上服務器docker會顯示出服務器上的docker鏡像,找到剛剛生成的鏡像(圖中2),點擊創建容器

7.配置docker 容器對外暴露端口和項目接口端口,然后run啟動容器

最后,設置好后,啟動容器,啟動成功后去阿里雲查看是否啟動成功

 

IDEA啟動,打開項目很慢很卡?正確配置內存讓IDEA起飛

用IDEA開發項目,默認情況下內存會分配比較小,所以打開程序或者打開稍微大一點的項目速度就會比較慢。我們可以修改idea的相關配置,來加速程序啟動和項目加載速度。

idea安裝以后的默認配置如下:

默認值設置太小,跑稍微大點的項目或者微服務多模塊項目就會出現卡的情況

我的內存是16g的,所以我可以給idea分配大一點的內存,配置如下:

這個參數根據個人電腦內存的大小合適的配置,大了小了都不好,找個合適的進行配置

個人建議8g內存配置:

  1.  
    -Xms512m
  2.  
    -Xmx1024m
  3.  
    -XX:ReservedCodeCacheSize=512m
  4.  
    -XX:+UseConcMarkSweepGC
  5.  
    -XX:SoftRefLRUPolicyMSPerMB=50
  6.  
    -ea
  7.  
    -Dsun.io.useCanonCaches=false
  8.  
    -Djava.net.preferIPv4Stack=true
  9.  
    -XX:+HeapDumpOnOutOfMemoryError
  10.  
    -XX:-OmitStackTraceInFastThrow

16g內存配置:

  1.  
    -Xms1024m
  2.  
    -Xmx2048m
  3.  
    -XX:ReservedCodeCacheSize=1024m
  4.  
    -XX:+UseConcMarkSweepGC
  5.  
    -XX:SoftRefLRUPolicyMSPerMB=50
  6.  
    -ea
  7.  
    -Dsun.io.useCanonCaches=false
  8.  
    -Djava.net.preferIPv4Stack=true
  9.  
    -XX:+HeapDumpOnOutOfMemoryError
  10.  
    -XX:-OmitStackTraceInFastThrow

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM