From daa07dcb2bc5168e9a2b9a0a2456786768d6d2c1 Mon Sep 17 00:00:00 2001 From: sunxyw Date: Fri, 16 Dec 2022 15:29:10 +0800 Subject: [PATCH] add docker compose support --- docker-compose.yml | 96 ++++++++++++++++++++++++++++++++++ docker/.gitignore | 2 + docker/environment.env.example | 7 +++ docker/walle-q/Dockerfile | 12 +++++ docker/zhamao/Dockerfile | 14 +++++ 5 files changed, 131 insertions(+) create mode 100644 docker-compose.yml create mode 100644 docker/.gitignore create mode 100644 docker/environment.env.example create mode 100644 docker/walle-q/Dockerfile create mode 100644 docker/zhamao/Dockerfile diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..9722eec0 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,96 @@ +version: "3.9" + +services: + bot: + build: + context: docker/zhamao + dockerfile: ./Dockerfile + container_name: zhamao-bot + depends_on: + - database-postgres + - database-redis + networks: + - bot-net + ports: + - "20001-20005:20001-20005/tcp" + volumes: + - ".:/bot" + + walle-q: + build: + context: docker/walle-q + dockerfile: ./Dockerfile + container_name: zhamao-bot-walle-q + depends_on: + - bot + networks: + - bot-net + volumes: + - "./docker/volumes/walle-q-data:/bot" + + database-postgres: + container_name: zhamao-bot-db-postgres + env_file: + - docker/environment.env + image: postgres:14.4-alpine + networks: + - bot-net + ports: + - "5432:5432/tcp" + restart: always + volumes: + - "./docker/volumes/postgres-data:/var/lib/postgresql/data" + - "./docker/volumes/postgres-init:/docker-entrypoint-initdb.d" + + database-redis: + command: + - redis-server + - --requirepass + - "$${REDIS_PASSWORD}" + container_name: zhamao-bot-db-redis + env_file: + - docker/environment.env + image: redis:7.0-alpine + networks: + - bot-net + ports: + - "6379:6379/tcp" + restart: always + volumes: + - "./docker/volumes/redis-data:/data" + + db-admin-adminer: + container_name: zhamao-bot-dbadmin-adminer + depends_on: + database-postgres: + condition: service_started + database-redis: + condition: service_started + env_file: + - docker/environment.env + image: adminer:latest + networks: + - bot-net + ports: + - "15432:8080/tcp" + profiles: + - with-adminer + + db-admin-redis-insight: + container_name: zhamao-bot-dbadmin-redis-insight + depends_on: + database-postgres: + condition: service_started + database-redis: + condition: service_started + image: redislabs/redisinsight:latest + networks: + - bot-net + ports: + - "16379:8001/tcp" + profiles: + - with-adminer + +networks: + bot-net: + name: bot-net diff --git a/docker/.gitignore b/docker/.gitignore new file mode 100644 index 00000000..0ffbf30a --- /dev/null +++ b/docker/.gitignore @@ -0,0 +1,2 @@ +/volumes +environment.env diff --git a/docker/environment.env.example b/docker/environment.env.example new file mode 100644 index 00000000..c683bfee --- /dev/null +++ b/docker/environment.env.example @@ -0,0 +1,7 @@ +REDIS_PASSWORD={{$REDIS_PASSWORD}} + +POSTGRES_USER={{$DB_ROOT_USER}} +POSTGRES_PASSWORD={{$DB_ROOT_PASSWORD}} +POSTGRES_APPLICATION_USER={{$DB_USER}} +POSTGRES_APPLICATION_USER_PASSWORD={{$DB_PASSWORD}} +POSTGRES_APPLICATION_DATABASE={{$DB_NAME}} diff --git a/docker/walle-q/Dockerfile b/docker/walle-q/Dockerfile new file mode 100644 index 00000000..1a69aab8 --- /dev/null +++ b/docker/walle-q/Dockerfile @@ -0,0 +1,12 @@ +FROM alpine:latest + +MAINTAINER sunxyw + +RUN apk add --no-cache curl && \ + mkdir -p /bot && \ + curl -L -o /bot/walle-q https://github.com/onebot-walle/walle-q/releases/latest/download/walle-q-i686-linux-musl && \ + chmod +x /bot/walle-q + +ENV TZ=Asia/Shanghai + +ENTRYPOINT [ "/bot/walle-q" ] diff --git a/docker/zhamao/Dockerfile b/docker/zhamao/Dockerfile new file mode 100644 index 00000000..33fdefef --- /dev/null +++ b/docker/zhamao/Dockerfile @@ -0,0 +1,14 @@ +FROM phpswoole/swoole:5.0-php8.1 + +MAINTAINER sunxyw + +WORKDIR "/bot" + +ENV TZ=Asia/Shanghai + +EXPOSE 20001-20005 + +RUN docker-php-ext-install pcntl + +ENTRYPOINT [ "./zhamao" ] +CMD [ "server" ]