使用docker compose一键部署项目到服务器过程
作者:方渐鸿
本文介绍通过IntelliJ IDEA使用docker-compose.yml构建和管理容器集合,需修改Docker配置、设置执行器路径,编写yml文件并配置删除镜像以确保每次更新拉取远程镜像,最后通过日志管理容器
前言
该篇文章主要是使用idea通过docker-compose.yml构建容器集合并且进行统一管理更新
一、部署准备
因为我们的项目直接部署会出现资源限制问题,需要在部署项目的服务器的docker添加下面配置
vi /usr/lib/systemd/system/docker.service
找到ExecStart=的位置,在后面添加对应内容
--default-ulimit nofile=65536:65536 --default-ulimit nproc=60000:60000
二、本地idea配置docker和docker compose执行器
如果本地安装了docker则跳过这一步
- docker:https://download.docker.com/win/static/stable/x86_64/
- docker compose:https://github.com/docker/compose/releases
把下载好的.exe文件放入文件夹配置好对应的指定地址

如果本来本地就安装了docker则不用处理

三、编写docker-compose.yml文件
执行在项目跟目录创建一个docker compose文件

编写docker-compose.yml文件
version: '3.8' # Docker Compose 文件版本
services:
service-gateway:
image: 10.37.129.2:5000/ssyx/service-gateway:1.0.1 # 替换为你的 Harbor 地址和镜像标签
container_name: service-gateway #容器名称
ports:
- "8000:8000" # 映射端口,根据实际情况修改(服务器端口:容器端口)
environment: # 如果你的服务需要环境变量,在这里配置
- SPRING_PROFILES_ACTIVE:dev #指定dev
volumes: # 如果有挂载目录,在这里定义,配置日志的挂载目录即可
- /home/docker/docker-logs/ssyx/service-gateway:/app/logs/service-gateway
restart: always # 推荐设置,服务意外停止后自动重启
# depends_on: # 如果有依赖的服务,比如数据库,在这里定义
# - erp
service-sys:
image: 10.37.129.2:5000/ssyx/service-sys:1.0.1
container_name: service-sys #容器名称
ports:
- "8001:8001"
environment:
- SPRING_PROFILES_ACTIVE:dev
volumes:
- /home/docker/docker-logs/ssyx/service-gateway:/app/logs/service-gateway
restart: always
配置启动服务


注意:需要配置一下down删除容器时把本地镜像也删除掉,因为我们每次更新代码都需要到远程仓库去拉取最新的镜像,如果本地不删除的话,就不会每次去远程仓库拉取。

四、执行启动
创建好之后可以点击右上角的执行,也可以直接点击docker-compose.yml的启动标识启动创建单个服务或者多个容器

启动好之后则可以通过日志查看和管理docker容器

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
