feat: add docker-compose sample

This commit is contained in:
songyinyin 2022-09-08 22:12:32 +08:00
parent ad1a7227d6
commit 5b865fe49b
8 changed files with 118 additions and 6 deletions

View File

@ -2,7 +2,9 @@ name: Docker Image CI
on:
push:
branches: [ master ]
branches: [ 4.1.1-docker-compose ]
tags:
- 'v*'
jobs:
@ -13,18 +15,25 @@ jobs:
steps:
- uses: actions/checkout@v2
- name: Build the Docker image
run: mvn clean package -Pdev -DskipTests -U -e && /bin/cp -rf powerjob-server/powerjob-server-starter/target/*.jar powerjob-server/docker/powerjob-server.jar && /bin/cp -rf powerjob-worker-agent/target/*.jar powerjob-worker-agent/powerjob-agent.jar
run: mvn clean package -Pdev -DskipTests -U -e && /bin/cp -rf powerjob-server/powerjob-server-starter/target/*.jar powerjob-server/docker/powerjob-server.jar && /bin/cp -rf powerjob-worker-agent/target/*.jar powerjob-worker-agent/powerjob-agent.jar && /bin/cp -rf powerjob-worker-samples/target/*.jar powerjob-worker-samples/powerjob-worker-samples.jar
- uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tjqq/powerjob-server
tags: latest
tag_with_ref: true
path: powerjob-server/docker/
- uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tjqq/powerjob-agent
tags: latest
tag_with_ref: true
path: powerjob-worker-agent/
- uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tjqq/powerjob-worker-samples
tag_with_ref: true
path: powerjob-worker-samples/

1
.gitignore vendored
View File

@ -42,3 +42,4 @@ build/
*/.phd
*/.txt
*/.trc
powerjob-data/

50
docker-compose.yml Normal file
View File

@ -0,0 +1,50 @@
# 使用说明 V4.1.1
# 1. PowerJob 根目录执行docker-compose up
# 2. 静静等待服务启动。刚开始启动时powerjob-worker-samples会启动失败等powerjob-server启动成功后powerjob-worker-samples才会启动成功。
version: '3'
services:
powerjob-mysql:
build:
context: ./others
environment:
MYSQL_ROOT_HOST: "%"
MYSQL_ROOT_PASSWORD: No1Bug2Please3!
restart: always
container_name: powerjob-mysql
image: powerjob/powerjob-mysql:4.1.1
ports:
- "3306:3306"
volumes:
- ./powerjob-data/powerjob-mysql:/var/lib/mysql
command: --lower_case_table_names=1
powerjob-server:
container_name: powerjob-server
image: tjqq/powerjob-server:latest
restart: always
depends_on:
- powerjob-mysql
environment:
PARAMS: "--oms.mongodb.enable=false --spring.datasource.core.jdbc-url=jdbc:mysql://powerjob-mysql:3306/powerjob-daily?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"
ports:
- "7700:7700"
- "10086:10086"
- "10010:10010"
volumes:
- ./powerjob-data/powerjob-server:/powerjob/server/
powerjob-worker-samples:
container_name: powerjob-worker-samples
image: tjqq/powerjob-worker-samples:latest
restart: always
depends_on:
- powerjob-mysql
- powerjob-server
environment:
PARAMS: "--powerjob.worker.server-address=powerjob-server:7700"
ports:
- "8081:8081"
- "27777:27777"
volumes:
- ./powerjob-data/powerjob-worker-samples:/powerjob/worker

11
others/Dockerfile Normal file
View File

@ -0,0 +1,11 @@
FROM mysql/mysql-server:8.0.30
MAINTAINER dudiao(idudaio@163.com)
ENV TZ=Asia/Shanghai
RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
COPY sql/01schema.sql /docker-entrypoint-initdb.d
COPY sql/02worker-samples.sql /docker-entrypoint-initdb.d

2
others/sql/01schema.sql Normal file
View File

@ -0,0 +1,2 @@
-- powerjob
create database `powerjob-daily` default character set utf8mb4 collate utf8mb4_general_ci;

View File

@ -0,0 +1,21 @@
USE powerjob-daily;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
CREATE TABLE IF NOT EXISTS `app_info` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '应用ID',
`app_name` varchar(128) not NULL COMMENT '应用名称',
`current_server` varchar(255) default null COMMENT 'Server地址,用于负责调度应用的ActorSystem地址',
`gmt_create` datetime not null COMMENT '创建时间',
`gmt_modified` datetime not null COMMENT '更新时间',
`password` varchar(255) not null COMMENT '应用密码',
PRIMARY KEY (`id`),
UNIQUE KEY `uidx01_app_info` (`app_name`)
) ENGINE = InnoDB AUTO_INCREMENT = 1
DEFAULT CHARSET = utf8mb4
COLLATE = utf8mb4_general_ci COMMENT ='应用表';
insert into app_info (app_name, gmt_create, gmt_modified, password) select 'powerjob-worker-samples', current_timestamp(), current_timestamp(), 'powerjob123' from dual where not exists ( select * from app_info where app_name = 'powerjob-worker-samples');
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -0,0 +1,18 @@
# 基础镜像(支持 amd64 & arm64based on Ubuntu 18.04.4 LTS
FROM adoptopenjdk:8-jdk-hotspot
# 维护者
MAINTAINER dudiao(idudiao@163.com)
# 设置时区
ENV TZ=Asia/Shanghai
# 设置其他环境变量
ENV APP_NAME=powerjob-worker-samples
# 传递 SpringBoot 启动参数 和 JVM参数
ENV PARAMS=""
ENV JVMOPTIONS=""
# 将应用 jar 包拷入 docker
COPY target/powerjob-worker-samples-*.jar /powerjob-worker-samples.jar
# 暴露端口HTTP + AKKA
EXPOSE 8081 27777
# 启动应用
ENTRYPOINT ["sh","-c","java $JVMOPTIONS -jar /powerjob-worker-samples.jar $PARAMS"]

View File

@ -4,7 +4,7 @@ spring.jpa.open-in-view=false
# Akka port, default is 27777
powerjob.worker.akka-port=27777
# Application name, used for grouping applications. Recommend to set the same value as project name.
powerjob.worker.app-name=powerjob-agent-test
powerjob.worker.app-name=powerjob-worker-samples
# Address of PowerJob-server node(s). Ip:port or domain. Multiple addresses should be separated with comma.
powerjob.worker.server-address=127.0.0.1:7700,127.0.0.1:7701
# Store strategy of H2 database. disk or memory. Default value is disk.