以部署微服务为例:
1、 docker-compose配置文件详解
// 指定 compose 文件的版本
version: '3'
// 定义所有的 service 信息
services:
jeecg-boot-mysql: //一个 service 的名称
build: //构建路径(指定 Dockerfile 所在文件夹的路径)
context: ../db
environment: // 设置镜像变量
MYSQL_ROOT_PASSWORD: root
MYSQL_ROOT_HOST: '%'
TZ: Asia/Shanghai
restart: always // 指定docker容器(服务)总是运行
container_name: jeecg-boot-mysql // 指定容器的名称
command: // 覆盖容器启动后默认执行的命令
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--max_allowed_packet=128M
--default-authentication-plugin=caching_sha2_password
ports: // 映射端口
- 3306:3306
jeecg-boot-redis:
image: redis:5.0 //指定服务的镜像名称或镜像 ID
ports:
- 6379:6379
restart: always
container_name: jeecg-boot-redis
hostname: jeecg-boot-redis
jeecg-boot-nacos: #服务名
restart: always #指定docker容器(服务)总是运行
build:
context: ./ jeecg-boot-nacos
ports:
- 8848:8848 #映射端口
container_name: jeecg-boot-nacos #容器名
hostname: jeecg-boot-nacos #主机名
jeecg-boot-gateway:
restart: on-failure
build:
context: ./jeecg-boot-gateway
ports:
- 9999:9999
depends_on:
- jeecg-boot-nacos
container_name: jeecg-boot-gateway
hostname: jeecg-boot-gateway
jeecg-boot-system-cloud-start:
depends_on: #启动容器排序
- jeecg-boot-nacos
- jeecg-boot-gateway
build:
context: ./jeecg-boot-system-cloud-start # 指定 Dockerfile 文件所在的路径
container_name: jeecg-boot-system-cloud-start
hostname: jeecg-boot-system-cloud-start
restart: on-failure #当出现 on-failure 报错时, 容器重新启动
environment:
- TZ=Asia/Shanghai
jeecg-boot-manage-start:
depends_on: #启动容器排序
- jeecg-boot-nacos
- jeecg-boot-gateway
- jeecg-boot-system-cloud-start
build:
context: ./jeecg-boot/jeecg-boot--manage-start # 指定 Dockerfile 文件所在的路径
container_name: jeecg-boot-manage-start
hostname: jeecg-boot-manage-start
restart: on-failure #当出现 on-failure 报错时, 容器重新启动
environment:
- TZ=Asia/Shanghai
2、Dockerfile 配置文件详解
// 基于Java8的基础镜像
FROM anapsix/alpine-java:8_server-jre_unlimited
// 镜像构建的时候需要运行的命令
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
// 创建镜像目录
RUN mkdir -p /jeecg-boot-manage-start
// 镜像的工作目录
WORKDIR /jeecg-boot-manage-start
// 端口
EXPOSE 7001
// 添加内容一个压缩包
ADD ./jeecg-boot-manage-start/target/jeecg-boot-manage-start.jar ./
// 指定这个容器启动的时要运行的命令
CMD sleep 1;java -Dfile.encoding=utf-8 -Djava.security.egd=file:/dev/./urandom -jar jeecg-boot-manage-start.jar
3、脚本执行命令
// 执行脚本 docker-compose.yml 命令
docker-compose up -d
// 执行其他脚本命令 例如: docker-compose-base.yml
docker-compose -f docker-compose-base.yml up -d