公司管理平台完成后,为了方便其他不懂开发的同事部署和测试,集成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-mysql
image: mysql:5.7
build:
context: .
dockerfile: mysql-dockerfile
ports:
- "3306:3306"
volumes:
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/logs:/logs
- ./mysql/data:/var/lib/mysql
command: [
'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: weiyidb
MYSQL_ROOT_PASSWORD: 这里填写root密码
weiyi-server:
container_name: weiyi-server
build:
context: .
dockerfile: weiyi-dockerfile
ports:
- "80:80"
volumes:
- ./weiyi/logs:/home/weiyi/logs
- ./weiyi/uploadPath:/home/weiyi/uploadPath
depends_on:
- weiyi-mysql
links:
- 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