diff --git a/docker-compose/docker-compose.auth.yml b/docker-compose/docker-compose.auth.yml new file mode 100644 index 0000000000000000000000000000000000000000..4cb030d0a9f89456fc0da652ac0dad7e0b66df8c --- /dev/null +++ b/docker-compose/docker-compose.auth.yml @@ -0,0 +1,44 @@ +version: '3' +services: + #授权服务 + authorization-server: + image: cike/authorization-server:latest + container_name: sc-authorization-server + restart: always + networks: + - sc-net + ports: + - 8000:8000 + env_file: .env + environment: + TZ: Asia/Shanghai + depends_on: + - authentication-server + + #认证服务 + authentication-server: + image: cike/authentication-server:latest + container_name: sc-authentication-server + restart: always + networks: + - sc-net + ports: + - 8001:8001 + env_file: .env + environment: + TZ: Asia/Shanghai + depends_on: + - organization + + #组织服务 + organization: + image: cike/organization:latest + container_name: sc-organization + restart: always + networks: + - sc-net + ports: + - 8010:8010 + env_file: .env + environment: + TZ: Asia/Shanghai \ No newline at end of file diff --git a/docker-compose/docker-compose.center.yml b/docker-compose/docker-compose.center.yml new file mode 100644 index 0000000000000000000000000000000000000000..3101243097e201a50b074f0c57fe787c6dfc59d1 --- /dev/null +++ b/docker-compose/docker-compose.center.yml @@ -0,0 +1,40 @@ +version: '3' +services: + #注册中心 + eureka-server: + image: cike/eureka-server:latest + container_name: sc-eureka + restart: always + networks: + - sc-net + ports: + - 8761:8761 + env_file: .env + environment: + TZ: Asia/Shanghai + + #配置中心 + config-server: + image: cike/config-server:latest + container_name: sc-config + restart: always + networks: + - sc-net + ports: + - 8888:8888 + env_file: .env + environment: + TZ: Asia/Shanghai + + #消息中心 + bug-server: + image: cike/bus-server:latest + container_name: sc-bus + restart: always + networks: + - sc-net + ports: + - 8071:8071 + env_file: .env + environment: + TZ: Asia/Shanghai \ No newline at end of file diff --git a/docker-compose/docker-compose.spring-gateway.yml b/docker-compose/docker-compose.spring-gateway.yml new file mode 100644 index 0000000000000000000000000000000000000000..6ef24d4277360a7ebbedf5d3105505ca4c30f099 --- /dev/null +++ b/docker-compose/docker-compose.spring-gateway.yml @@ -0,0 +1,27 @@ +version: '3' +services: + #网关服务 + gateway-web: + image: cike/gateway-web:latest + container_name: sc-gateway-web + restart: always + networks: + - sc-net + ports: + - 8443:8443 + env_file: .env + environment: + TZ: Asia/Shanghai + + #网关管理服务 + gateway-admin: + image: cike/gateway-admin:latest + container_name: sc-gateway-admin + restart: always + networks: + - sc-net + ports: + - 8445:8445 + env_file: .env + environment: + TZ: Asia/Shanghai diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index adde7211ab55c9e5e4ae9125d0e4600d315bda81..aa0194331d4e25760891e4f0424d33d0d8043de1 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -12,6 +12,7 @@ services: - sc-net ports: - 6379:6379 + env_file: .env rabbitmq: image: rabbitmq:alpine @@ -23,6 +24,7 @@ services: - sc-net ports: - 5672:5672 + env_file: .env postgres: image: postgres:9.6-alpine @@ -34,6 +36,7 @@ services: - sc-net ports: - 5432:5432 + env_file: .env environment: - POSTGRES_PASSWORD=postgres diff --git a/install.sh b/install.sh new file mode 100755 index 0000000000000000000000000000000000000000..081e9a70ea7ca2d3d70b7ffe01d07f82426ced81 --- /dev/null +++ b/install.sh @@ -0,0 +1,230 @@ +#!/usr/bin/env bash +echo '==================1.开发环境准备================================' +echo '1.1请确保安装并java8, git, maven并设置好环境变量' +echo '1.2请确保安装并docker,docker-compose并设置好环境变量' + +#确认环境信息准备就绪 +read -r -p "开发环境准备好了吗? [Y/n] " envConfirm +case $envConfirm in + [yY][eE][sS]|[yY]) + echo "Yes 继续执行" + ;; + [nN][oO]|[nN]) + echo "No 终止执行" + exit 1 + ;; + *) + echo "Invalid input... 终止执行" + exit 1 + ;; +esac + +echo '==================1.3清理当前脚本启动的容器和产生的镜像(可选的)==============' +#清理当前脚本启动的容器和产生的镜像(可选的) +#docker stop sc-rabbitmq sc-redis sc-postgres +#docker rm sc-rabbitmq sc-redis sc-postgres +#docker image rm rabbitmq:alpine redis:alpine postgres:9.6-alpine + +#docker stop sc-authorization-server sc-authentication-server sc-organization sc-apollo-portal-server sc-apollo-config-server sc-apollo-db sc-eureka sc-gateway-admin sc-gateway-web +#docker rm sc-authorization-server sc-authentication-server sc-organization sc-apollo-portal-server sc-apollo-config-server sc-apollo-db sc-eureka sc-gateway-admin sc-gateway-web +#docker image rm cike/authorization-server:latest cike/authentication-server:latest cike/organization:latest cike/gateway-admin:latest cike/gateway-web:latest cike/eureka-server:latest + +echo '==================2.安装认证公共包到本地maven仓库==================' +#安装认证公共包到本地maven仓库 +cd common && mvn install +echo '当前目录:' && pwd + +#回到根目录 +cd - + +echo '==================3.安装认证客户端到本地maven仓库==================' +#安装认证客户端到本地maven仓库 +cd auth/authentication-client && mvn install +echo '当前目录:' && pwd + +#回到根目录 +cd - + +echo '==================4.docker-compose启动公共服务===================' +#去docker-compose目录 +cd docker-compose +echo '==================4.1显示环境变量: docker-compose/.env ==========' +#显示环境变量 +cat ./.env +echo '' + +#按需要开启公共服务 +echo '==================4.2启动 postgres or redis or rabbitmq ========' +docker-compose -f docker-compose.yml up -d postgres +docker-compose -f docker-compose.yml up -d redis +docker-compose -f docker-compose.yml up -d rabbitmq + +echo '当前目录:' && pwd + +#回到根目录 +cd - + +echo '==================4.3.构建镜像:注册中心, 配置中心, 消息中心========' +#构建镜像:注册中心 +cd ./center/eureka +mvn package && mvn docker:build + +#回到根目录 +cd - + +#构建镜像:配置中心 +cd ./center/config +mvn package && mvn docker:build + +#回到根目录 +cd - + +#构建镜像:消息中心 +cd ./center/bus +mvn package && mvn docker:build + +#回到根目录 +cd - + +echo '==================4.4.启动注册中心, 配置中心, 消息中心============' +#去docker-compose目录 +cd docker-compose + +#启动注册中心 +docker-compose -f docker-compose.yml -f docker-compose.center.yml up -d eureka-server + +#启动配置中心, 消息中心 +#可以使用Spring自带的config, 也可以直接使用apollo +#docker-compose -f docker-compose.yml -f docker-compose.config.yml up apollo-portal +docker-compose -f docker-compose.yml -f docker-compose.center.yml up -d config-server + +#启动消息中心 +docker-compose -f docker-compose.yml -f docker-compose.center.yml up -d bud-server + +#回到根目录 +cd - + +echo '==================5.构建镜像并启动网关(gateway)相关服务===============' +#构建镜像:网关服务 +cd ./gateway/gateway-web +mvn package && mvn docker:build + +#回到根目录 +cd - + +#构建镜像:网关管理服务 +cd ./gateway/gateway-admin +mvn package && mvn docker:build + +#确认初始化网关服务的DB:./gateway/gateway-admin/src/main/db +#确认环境信息准备就绪 +echo '你可以立即去部署网关服务的DB(脚本路径:./gateway/gateway-admin/src/main/db),然后回来继续...' +read -r -p "确认网关服务的DB部署好了吗? [Y/n] " gwDbConfirm +case $gwDbConfirm in + [yY][eE][sS]|[yY]) + echo "Yes 继续执行" + ;; + [nN][oO]|[nN]) + echo "No 终止执行" + exit 1 + ;; + *) + echo "Invalid input... 终止执行" + exit 1 + ;; +esac + +#回到根目录 +cd - + +#去docker-compose目录 +cd docker-compose + +#启动网关服务 +docker-compose -f docker-compose.yml -f docker-compose.spring-gateway.yml up -d gateway-web + +#启动网关管理服务 +docker-compose -f docker-compose.yml -f docker-compose.spring-gateway.yml up -d gateway-admin + +#回到根目录 +cd - + +echo '==================6.构建镜像并启动组织(organization)相关服务==================' +#构建镜像:组织服务 +cd ./sysadmin/organization +mvn package && mvn docker:build + +#确认初始化授权/认证服务的DB:./sysadmin/db +#确认环境信息准备就绪 +echo '你可以立即去部署组织服务的DB(脚本路径:./sysadmin/db),然后回来继续...' +read -r -p "确认部署组织服务的DB部署好了吗? [Y/n] " orgDbConfirm +case $orgDbConfirm in + [yY][eE][sS]|[yY]) + echo "Yes 继续执行" + ;; + [nN][oO]|[nN]) + echo "No 终止执行" + exit 1 + ;; + *) + echo "Invalid input... 终止执行" + exit 1 + ;; +esac + +#回到根目录 +cd - + +#去docker-compose目录 +cd docker-compose + +#启动组织服务 +docker-compose -f docker-compose.yml -f docker-compose.auth.yml up -d organization + +#回到根目录 +cd - + +echo '==================7.构建镜像并启动认证(auth)相关服务==================' +#构建镜像:认证服务 +cd ./auth/authentication-server +mvn package && mvn docker:build + +#回到根目录 +cd - + +#构建镜像:授权服务 +cd ./auth/authorization-server +mvn package && mvn docker:build + +#确认初始化授权/认证服务的DB:./auth/db +#确认环境信息准备就绪 +echo '你可以立即去部署授权/认证服务的DB(脚本路径:./auth/db),然后回来继续...' +read -r -p "确认部署授权/认证服务的DB部署好了吗? [Y/n] " authDbConfirm +case $authDbConfirm in + [yY][eE][sS]|[yY]) + echo "Yes 继续执行" + ;; + [nN][oO]|[nN]) + echo "No 终止执行" + exit 1 + ;; + *) + echo "Invalid input... 终止执行" + exit 1 + ;; +esac + +#回到根目录 +cd - + +#去docker-compose目录 +cd docker-compose + +#启动网关服务 +docker-compose -f docker-compose.yml -f docker-compose.auth.yml up -d authorization-server + +#启动网关管理服务 +docker-compose -f docker-compose.yml -f docker-compose.auth.yml up -d authentication-server + +#回到根目录 +cd -