公司管理平台完成后,为了方便其他不懂开发的同事部署和测试,集成docker进行一键部署,也为后面自动化部署做准备。本文做个简单记录。
1、安装docker
yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
docker version检查安装是否成功
2、安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
docker-compose --version 检查是否安装成功
权限不够给文件授权 chmod +x /usr/local/bin/docker-compose
3.构建docker-compose相关文件,主要包含db的sql文件、项目jar文件。
docker-compse.yml如下, 其中weiyi-mysql是数据库服务名,weiyi-server是项目服务名,其他细节后续专门写文章详细介绍。
version : '3'
services:weiyi-mysql:container_name: weiyi-mysqlimage: mysql:5.7build:context: .dockerfile: mysql-dockerfileports:- "3306:3306"volumes:- ./mysql/conf:/etc/mysql/conf.d- ./mysql/logs:/logs- ./mysql/data:/var/lib/mysqlcommand: ['mysqld','--innodb-buffer-pool-size=80M','--character-set-server=utf8mb4','--collation-server=utf8mb4_unicode_ci','--default-time-zone=+8:00','--lower-case-table-names=1']environment:MYSQL_DATABASE: weiyidbMYSQL_ROOT_PASSWORD: 这里填写root密码weiyi-server:container_name: weiyi-serverbuild:context: .dockerfile: weiyi-dockerfileports:- "80:80"volumes:- ./weiyi/logs:/home/weiyi/logs- ./weiyi/uploadPath:/home/weiyi/uploadPathdepends_on:- weiyi-mysqllinks:- weiyi-mysql
mysql-dockerfile
# 基础镜像
FROM mysql:5.7
# author
MAINTAINER sunx <554686223@qq.com># 执行sql脚本
ADD ./db/*.sql /docker-entrypoint-initdb.d/
weiyi-dockerfile
# 基础镜像
FROM java:8
# author
MAINTAINER sunx <554686223@qq.com># 挂载目录
VOLUME /home/weiyi
# 创建目录
RUN mkdir -p /home/weiyi
# 指定路径
WORKDIR /home/weiyi
# 复制jar文件到路径
COPY ./jar/*.jar /home/weiyi/weiyi.jar
# 启动应用
ENTRYPOINT ["java","-jar","weiyi.jar"]
上传到服务器
4.启动docker systemctl start docker
5.构建docker服务 docker-compose build
注意执行时路径在docker-compose.yml所在路径或者指定文件路径。
开始构建服务:
构建服务完成:
可以查看docker中镜像,包含了项目的服务镜像。
6.启动服务
启动服务的容器docker-compose up weiyi-mysql weiyi-server
7.停止服务
停止服务的容器docker-compose stop weiyi-mysql weiyi-server