# docker-compose-deploy **Repository Path**: iuhao2016/docker-compose-deploy ## Basic Information - **Project Name**: docker-compose-deploy - **Description**: 集成Springboot、Redis、Mysql、Nginx、MongoDB、Portainer服务的Docker-compose配置文件,提供Redis、Mysql、Nginx单独配置文件,提供shell脚本直接自动化部署 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-06-09 - **Last Updated**: 2023-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 使用步骤 ### 安装环境 - 安装`Docker` 1. 安装yum工具 ```bash yum install -y yum-utils \ device-mapper-persistent-data \ lvm2 --skip-broken ``` 2. 更新本地镜像源 ```bash # 设置docker镜像源 yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo yum makecache fast ``` 3. 安装docker社区免费版本 ```bash yum install -y docker-ce ``` 4. 测试安装结果 ```bash docker -v ``` - 安装`Docker-Compose` 1. 下载最新版的docker-compose文件 ```bash sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose ``` 2. 添加可执行权限 ```bash sudo chmod +x /usr/local/bin/docker-compose ``` 3. 测试安装结果 ```bash docker-compose --version ``` ### 部署 1. 拉取代码 ```bash git clone https://gitee.com/codewarning/docker-compose-deploy.git ``` > 如果是在Idea里面编辑该项目,可以配置`SFTP`,直接将项目代码上传到远程服务器 2. 运行脚本 ```bash chmod +x deploy.bash # 授权脚本执行权限 ./deploy.bash # 运行脚本 # 或者直接使用 bash deploy.bash 命令运行脚本 ``` > 脚本功能解释(`deploy.bash`): > >1.创建`/usr/local/app`目录,用于存储项目数据和服务配置文件 > >2.复制`./src/main/resources/config`目录下的配置文件到`/usr/local/app`目录下 > >3.运行`docker-compose.yml`配置文件,包括构建镜像,(重新)创建服务,启动服务 3. 查看容器 ```bash [root@hecs-164993 project]# docker-compose ps Name Command State Ports ----------------------------------------------------------------------------------------------------------------- app /usr/local/bin/mvn-entrypo ... Up 0.0.0.0:8080->8080/tcp,:::8080->8080/tcp mongo docker-entrypoint.sh mongod Up 0.0.0.0:27017->27017/tcp,:::27017->27017/tcp mysql docker-entrypoint.sh mysqld Up 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp, 33060/tcp nginx /docker-entrypoint.sh ngin ... Up 0.0.0.0:80->80/tcp,:::80->80/tcp portainer /portainer Up 8000/tcp, 0.0.0.0:9999->9000/tcp,:::9999->9000/tcp, 9443/tcp redis docker-entrypoint.sh redis ... Up 0.0.0.0:6379->6379/tcp,:::6379->6379/tcp ``` 4. 测试 ```bash # 测试app curl localhost:8080 # 成功标志:success ``` ```bash # 测试nginx(在/user/local/app/webapp目录下新建一个index.html文件,随便写点代码 curl localhost # 成功标志:控制台显示index.html文件内的内容 ``` > 其他服务请自行测试,可以选择进入容器测试,也可以防火墙放开端口使用远程连接测试 ### 项目结构 ``` │ .dockerignore # Dockerfile中COPY时忽略的文件 │ .gitignore │ deploy.bash # 部署脚本 │ docker-compose.yml #docker-compose配置文件 │ Dockerfile # Java程序的Dockfile配置文件(app镜像) │ LICENSE │ pom.xml │ README.md │ └─src └─main ├─java │ └─com │ └─demo │ │ Application.java │ │ │ └─controller │ PublicController.java # App镜像测试接口 │ └─resources │ application.yml │ └─config ├─maven │ settings.xml # 配置maven仓库镜像 │ ├─mongo │ init.sh # mongodb初始化脚本 │ ├─mysql │ │ my.cnf # 数据库配置文件 │ │ │ └─sql │ user.sql # 数据库启动时运行的sql文件,可有可无 │ ├─nginx │ nginx.conf # nginx的配置文件 │ ├─portainer │ └─redis redis.conf # redis的配置文件 ```