第一种方式:推送到Docker Hub上再拉到服务器Docker上

前端后端推送至Docker

检查所有配置文件(尤其是其中的密码)

前端

后端

打开git bash再cd到big-market-dyx-app目录下输入./build.sh,这样可以查看相应的报错日志。如果没错误,直接点Dockerfile的运行按钮也是可以的,前后端都一样

镜像推送至Docker Hub

把前后端镜像推送至Docker Hub

记得一定要先登录账户,并且创建名字对应的两个仓库。Push成功后可以登录Docker Hub瞅一眼

②上传dev-ops文件至服务器

cd srv/javaproj/dyx/big-market

在本地用命令行将dev-ops文件上传至linux服务器上的对应文件夹中

scp -r D:\Javaproj\dyx\big-market\dyx\big-market-dyx\docs\dev-ops root@120.55.49.238:/srv/javaproj/dyx/big-market

服务器中使用命令pull镜像

docker-compose -f docker-compose-environment.yml up -d
docker-compose -f docker-compose-app.yml up -d

在拉Docker Hub上的前后端镜像时总是超时,全靠运气

成功后在portainer中可以查看到部署成功的镜像(http://xxxx:9000)

服务器防火墙打开所需端口

以上方式大概率失败,因为国内的源基本都挂了

第二种方式:通过JetBrains的Docker插件直接将本地镜像传到服务器Docker中

在此感谢寇师兄的帮助,不愧是大厂offer拿到手软的男人

Idea中添加DockerFile

Name可以随便取,因为不需要传到Docker Hub

创建一个新Server,就是相当于连接到你服务器中的docker,端口号一定要在服务器防火墙中打开(各版本idea好像不一样?)

要在服务器中改写一个配置,详细请看。连接成功会显示Connection successful

Dockerfile的位置别弄错了

配置好Apply后Run!

WebStorm同理

注意,前端中的127.0.0.1:8080最好改成服务器的url,虽然dev-ops中docker-compose-app.yml会配置,但是可能会失效。

镜像上传成功,然后同②

我用的2核2G的轻量级服务器,必须把其他容器全部停掉,不然内存就爆了...

访问对应的url

成功!

PS:

本地用maven打jar包前一定一定,千千万万要检查好所有配置文件,特别是mysql的用户名和密码,需要对应起来的地方不能出错,不然好不容易到最后一步发现后只能重新部署

2核2G的服务器太小了,如果运行了别的容器,程序在往Redis装配数据时可能会丢失,前端向后端发送的请求也可能丢失,总之,其他的全关掉后再运行你的服务

再次感谢寇师兄的帮助,让我少走了很多弯路,部署一次上线我才了解到运维同学的不容易,Docker如此好用我部署的都费劲,以后如果要用K8s可咋整/(ㄒoㄒ)/