From 201626f43b656fe8058d316bd5f5ff08d4682b78 Mon Sep 17 00:00:00 2001 From: tablee Date: Sun, 26 Aug 2018 16:44:45 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A2=ABdocker-compose=20replicas=20=E5=9D=91?= =?UTF-8?q?=E4=BA=86=E4=B8=80=E6=8A=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/README.md | 2 +- docker/code-push-server/Dockerfile | 8 +++++--- docker/code-push-server/process.json | 11 +++++++++++ docker/docker-compose.yml | 12 ++++++------ docker/sql/codepush-all.sql | 4 ++++ 5 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 docker/code-push-server/process.json diff --git a/docker/README.md b/docker/README.md index faa37619..afdf433c 100644 --- a/docker/README.md +++ b/docker/README.md @@ -4,7 +4,7 @@ - code-push-server部分 - 更新包默认采用`local`存储(即存储在本地机器上)。使用docker volume存储方式,容器销毁不会导致数据丢失,除非人为删除volume。 - - 默认开启5个实例,使用swarm内部默认负载均衡策略,可以根据自己机器配置设置docker-compose.yml文件中deploy参数。 + - 内部使用pm2 cluster模式管理进程,默认开启进程数为cpu数,可以根据自己机器配置设置docker-compose.yml文件中deploy参数。 - docker-compose.yml只提供了应用的一部分参数设置,如需要设置其他配置,可以修改文件config.js。 - mysql部分 - 数据使用docker volume存储方式,容器销毁不会导致数据丢失,除非人为删除volume。 diff --git a/docker/code-push-server/Dockerfile b/docker/code-push-server/Dockerfile index cb478ddf..b13c4741 100644 --- a/docker/code-push-server/Dockerfile +++ b/docker/code-push-server/Dockerfile @@ -1,8 +1,10 @@ FROM node:8.11.4-alpine -RUN npm config set registry https://registry.npm.taobao.org/ \ -&& npm i -g code-push-server@0.4.3 --no-optional +RUN npm config set registry https://registry.npm.taobao.org/ \ +&& npm i -g code-push-server@0.4.3 pm2@latest --no-optional + +COPY ./process.json /process.json EXPOSE 3000 -CMD ["code-push-server"] +CMD ["pm2-docker", "start", "/process.json"] diff --git a/docker/code-push-server/process.json b/docker/code-push-server/process.json new file mode 100644 index 00000000..493010d3 --- /dev/null +++ b/docker/code-push-server/process.json @@ -0,0 +1,11 @@ +{ + "apps" : [ + { + "name" : "code-push-server", + "max_memory_restart" : "500M", + "script" : "code-push-server", + "instances" : "max", //开启实例数量,max为cpu核数 + "exec_mode" : "cluster", //集群模式,最大提升网站并发 + } + ] +} \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 2a5a9c15..6b8193fc 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,7 +1,7 @@ -version: "3.3" +version: "3.7" services: server: - image: tablee/code-push-server:v0.4.3 + image: tablee/code-push-server:v0.4.4 volumes: - data-storage:/data/storage - data-tmp:/data/tmp @@ -10,8 +10,8 @@ services: DOWNLOAD_URL: "http://YOU_MACHINE_IP:3000/download" MYSQL_HOST: "YOU_MACHINE_IP" MYSQL_PORT: "3308" - MYSQL_USERNAME: "root" - MYSQL_PASSWORD: null + MYSQL_USERNAME: "codepush" + MYSQL_PASSWORD: "123456" MYSQL_DATABASE: "codepush" STORAGE_DIR: "/data/storage" DATA_DIR: "/data/tmp" @@ -20,7 +20,6 @@ services: REDIS_HOST: "YOU_MACHINE_IP" REDIS_PORT: "6388" deploy: - replicas: 5 resources: limits: cpus: "2" @@ -52,10 +51,11 @@ services: ports: - "6388:6379" networks: - - dbnet + - redisnet networks: servernet: dbnet: + redisnet: volumes: data-storage: data-tmp: diff --git a/docker/sql/codepush-all.sql b/docker/sql/codepush-all.sql index e36a34dd..f0b53688 100644 --- a/docker/sql/codepush-all.sql +++ b/docker/sql/codepush-all.sql @@ -1,5 +1,9 @@ CREATE DATABASE IF NOT EXISTS `codepush`; +GRANT SELECT,UPDATE,INSERT ON `codepush`.* TO 'codepush'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; + +flush privileges; + use `codepush`; CREATE TABLE IF NOT EXISTS `apps` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT,