一、前言
本來想寫部署項目到阿里雲服務器,但是我的一核2G內存的雲服務器實在是不夠看。所以本次項目是部署到本機linux中。
本次的項目是提前已經準備好elasticsearch6.4.2,nacos1.3.1,安裝不再贅述。
二、docker配置
1.修改docker配置
在docker.service文件中添加
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -H fd:// --containerd=/run/containerd/containerd.sock
這樣,就可以使用2375端口訪問docker了
2.使用idea插件連接docker
在plugs中查找docker並安裝。
3.編寫Dockerfile
FROM hub.c.163.com/library/java:latest
VOLUME /tmp
ADD target/blog_server.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
4.maven配置docker插件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--配置主機地址,即linux服務器的地址-->
<dockerHost>http://127.0.0.1:2375</dockerHost>
<imageName>sustly/${project.artifactId}</imageName>
<imageTags>
<imageTag>${project.version}</imageTag>
</imageTags>
<forceTags>true</forceTags>
<dockerDirectory>${project.basedir}</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
5.package
在maven中,點擊package,就可以看見開始打包。在docker查看:
使用docker run 命令即可。
三、遇到的問題
1.莫名其妙的報錯
以及mysql連接,es連接問題。
如果你的elasticsearch以及mysel都是安裝在docker中的話,必須使用內網地址連接,不能用localhost和127.0.0.1,否則會報錯。
四、地址
我的項目地址:https://github.com/sustly/blog_vue_server/tree/springcloud_alibaba
注意是springcloud_alibaba分支,springcloud_netflix是已經完善的