**
图片请看我的博客
**
从0开始,使用dockerfile将项目打包上传到服务器
以开源项目若依Cloud为例子
项目地址:https://github.com/zhangmrit/ruoyi-cloud
1.安装依赖包:
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2.安装Docker-CE
$ sudo yum install docker-ce
3.配置docker远程访问
$ vim /usr/lib/systemd/system/docker.service
4.找到下面这一行:
{% qnimg Git拉取项目-Docker部署SpringCloud/5.png %}
修改为:
# 如果有不一样的,直接在 /usr/bin/dockerd 后面加上即可
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
5.重新读取配置文件
$ systemctl daemon-reload
6.启动docker服务
# 重启docker
$ systemctl restart docker
# 开机启动
$ sudo systemctl enable docker
# 启动docker
$ sudo systemctl start docker
测试访问 http://ip-address:2375/version 如果有数据则配置成功
依次执行:
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
$ docker-compose --version
clone项目到本地或使用IDEA直接拉取:
$ git clone https://github.com/zhangmrit/ruoyi-cloud.git
请阅读README,其中说明了启动顺序:
就以前3个为例子,后面的依瓢画葫芦即可
其他模块请修改Eureka的地址:
server:
port: 7001
eureka:
instance:
hostname: chongma-eureka #eureka服务端的实例名称
client:
register-with-eureka: false #false表示不向注册中心注册自己。
fetch-registry: false #false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
service-url:
#单机
#设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
#defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
在需要启动的模块里添加
com.spotify
docker-maven-plugin
0.4.14
${project.artifactId}
src/main/docker
http://ip-address:2375
/
${project.build.directory}
${project.build.finalName}.jar
如下图,新建文件夹docker并创建Dockerfile文件
**
图片请看我的博客
**
文件内容:
# 基于哪个镜像
FROM java:8
# 将本地文件夹挂载到当前容器
VOLUME /tmp
# 拷贝文件到容器,chongma-eureka-1.0.1-SNAPSHOT.jar这里是maven打包后的名字
ADD chongma-eureka-1.0.1-SNAPSHOT.jar chongma-eureka.jar
RUN bash -c 'touch /chongma-eureka.jar'
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/chongma-eureka.jar"]
其他的文件照着修改打包名即可
首先在IDEA右侧栏点开Maven,选中ruoyi-cloud(root),执行install
然后新建maven命令:
clean package docker:build -DskipTests
**
图片请看我的博客
**
依次创建好3个模块的maven,最后执行
远程连接服务器,执行
$ docker images
**
图片请看我的博客
**
任意目录执行:
$ vim docker-compose.yml
其他模块的照着写即可:
version: '3'
services:
eureka-server: #自定义服务名--注册中心
restart: on-failure
image: chongma-eureka #镜像名称
ports:
- "7001:7001" #映射的端口
environment: #环境变量
SERVER_PORT: "7001" #自定义参数用于给服务的配置文件传递参数
config: #自定义服务名--配置中心
image: chongma-config #镜像名称
ports:
- "8888:8888" #映射的端口
environment: #环境变量配置
REGISTER_URL: "http://ip-address:7001/eureka/"
SERVER_PORT: "8888"
gateway: #自定义服务名
image: chongma-gateway #镜像名称
ports:
- "9527:9527" #映射的端口
environment: #环境变量配置
REGISTER_URL: "http://ip-address:7001/eureka/"
SERVER_PORT: "9527"
保存,执行命令:
$ docker-compose -f docker-compose.yml up -d
其他命令:
停止docker-compose(停止项目):
$ docker-compose -f docker-compose.yml down
查看运行的容器日志:
$ docker logs -f -t --tail 行数 容器名
1.服务器已有的项目镜像,再次执行maven打包,会出现如下问题:
**
图片请看我的博客
**
2.config配置中心用的是search-locations,虽然config注册到了Eureka
但是里面的数据库、redis连接都没有读取到