From 691ef2a66c122f2d8a85d7e2f1d24f9182f63842 Mon Sep 17 00:00:00 2001 From: zhangsz Date: Mon, 20 Jan 2025 15:05:07 +0800 Subject: [PATCH] feat: default docker-compose config yaml --- build/bin/wfcsetup.sh | 6 +- build/docker/compose/docker-compose-debug.yml | 348 ++++++++++++++++++ build/docker/{ => compose}/docker-compose.yml | 2 +- .../conf/default/application-common.yml | 4 + 4 files changed, 358 insertions(+), 2 deletions(-) create mode 100644 build/docker/compose/docker-compose-debug.yml rename build/docker/{ => compose}/docker-compose.yml (99%) diff --git a/build/bin/wfcsetup.sh b/build/bin/wfcsetup.sh index 3116121..2f4facd 100755 --- a/build/bin/wfcsetup.sh +++ b/build/bin/wfcsetup.sh @@ -46,6 +46,10 @@ case "$1" in systemctl daemon-reload systemctl enable wfccontrol.service + if [ ! -f ${docker_work_dir}/docker-compose.yml ]; then + cp ${docker_work_dir}/compose/docker-compose.yml ${docker_work_dir}/docker-compose.yml + fi + # 获取传入的IP地址 new_ip=$2 @@ -66,7 +70,7 @@ case "$1" in if [ ! -d $conf_dir/default ]; then continue fi - # 遍历default目录下的文件 + # 遍历config default配置文件 for file in "$conf_dir/default"/*; do filename=$(basename "$file") diff --git a/build/docker/compose/docker-compose-debug.yml b/build/docker/compose/docker-compose-debug.yml new file mode 100644 index 0000000..f31d0e6 --- /dev/null +++ b/build/docker/compose/docker-compose-debug.yml @@ -0,0 +1,348 @@ +services: + wfc-nacos: + image: nacos/nacos-server + container_name: ${NACOS_SERVER_NAME} + build: + context: ./nacos + environment: + - MODE=standalone + - SPRING_DATASOURCE_PLATFORM=mysql + - MYSQL_SERVICE_HOST=${MYSQL_SERVICE_NAME} + - MYSQL_SERVICE_DB_NAME=${WFC_CONFIG_DATABASE} + - MYSQL_SERVICE_PORT=${MYSQL_SERVICE_PORT} + - MYSQL_SERVICE_USER=${MYSQL_SERVICE_USER} + - MYSQL_SERVICE_PASSWORD=${MYSQL_SERVICE_PASSWORD} + - NACOS_PROFILE_NAME=${NACOS_PROFILE_NAME} + - NACOS_NAME_SPACE=${NACOS_NAME_SPACE} + - NACOS_SERVER_NAME=${NACOS_SERVER_NAME} + - NACOS_SERVER_IP=${NACOS_SERVER_IP} + - NACOS_SERVER_PORT=${NACOS_SERVER_PORT} + - SPRING_CONFIG_LOCATION=optional:classpath:/,optional:file:/home/nacos/conf/ + volumes: + - ./nacos/logs/:/home/nacos/logs + - ./nacos/conf/application.yml:/home/nacos/conf/application.yml + ports: + - "${NACOS_SERVER_PORT}:${NACOS_SERVER_PORT}" + networks: + - wfc-be-network + depends_on: + wfc-redis: + condition: service_healthy + wfc-mysql: + condition: service_healthy + healthcheck: + test: ["CMD-SHELL", "curl -f http://${NACOS_SERVER_IP}:${NACOS_SERVER_PORT}/nacos/v1/console/health/liveness || exit 1"] + interval: 10s + timeout: 5s + retries: 5 + restart: ${RESTART_OPTION} + + wfc-mysql: + image: mysql:5.7 + container_name: ${MYSQL_SERVICE_NAME} + build: + context: ./mysql + ports: + - "${MYSQL_SERVICE_PORT}:${MYSQL_SERVICE_PORT}" + networks: + - wfc-be-network + volumes: + - ./mysql/db:/docker-entrypoint-initdb.d + - ./mysql/conf.d:/etc/mysql/conf.d + - ./mysql/logs:/opt/wfc/mysql/logs + - ./mysql/data:/var/lib/mysql + - ./mysql/tmp:/tmp + environment: + MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + healthcheck: + test: ["CMD-SHELL", "mysqladmin ping -u root -p${MYSQL_ROOT_PASSWORD}"] + interval: 10s + timeout: 5s + retries: 5 + restart: ${RESTART_OPTION} + + wfc-redis: + image: redis + container_name: wfc-redis + build: + context: ./redis + ports: + - "${REDIS_PORT}:${REDIS_PORT}" + networks: + - wfc-be-network + volumes: + - ./redis/conf/redis.conf:/opt/wfc/redis/redis.conf + - ./redis/data:/opt/wfc/redis/data + command: redis-server /opt/wfc/redis/redis.conf + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 10s + timeout: 5s + retries: 5 + restart: ${RESTART_OPTION} + + wfc-gateway: + image: wfc-java:jre8 + container_name: wfc-gateway + ports: + - "${GATEWAY_SERVER_PORT}:${GATEWAY_SERVER_PORT}" + networks: + - wfc-be-network + volumes: + - ./wfc/gateway/jar/wfc-gateway.jar:/opt/wfc/app.jar + - ./conf/application-common.yml:/opt/wfc/conf/application-common.yml + - ./wfc/gateway/conf/application.yml:/opt/wfc/conf/application.yml + depends_on: + wfc-redis: + condition: service_healthy + wfc-mysql: + condition: service_healthy + wfc-nacos: + condition: service_healthy + environment: + - NACOS_PROFILE_NAME=${NACOS_PROFILE_NAME} + - NACOS_NAME_SPACE=${NACOS_NAME_SPACE} + - NACOS_SERVER_NAME=${NACOS_SERVER_NAME} + - NACOS_SERVER_IP=${NACOS_SERVER_IP} + - NACOS_SERVER_PORT=${NACOS_SERVER_PORT} + - GATEWAY_SERVER_PORT=${GATEWAY_SERVER_PORT} + - SPRING_CONFIG_LOCATION=optional:classpath:/,optional:file:/opt/wfc/conf/ + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:${GATEWAY_SERVER_PORT}/actuator/health || exit 1"] + interval: 30s + timeout: 30s + retries: 10 + restart: ${RESTART_OPTION} + + wfc-auth: + image: wfc-java:jre8 + container_name: wfc-auth + ports: + - "${AUTH_SERVER_PORT}:${AUTH_SERVER_PORT}" + networks: + - wfc-be-network + volumes: + - ./wfc/auth/jar/wfc-auth.jar:/opt/wfc/app.jar + - ./conf/application-common.yml:/opt/wfc/conf/application-common.yml + - ./wfc/auth/conf/application.yml:/opt/wfc/conf/application.yml + depends_on: + wfc-redis: + condition: service_healthy + wfc-mysql: + condition: service_healthy + wfc-nacos: + condition: service_healthy + wfc-gateway: + condition: service_healthy + environment: + - NACOS_PROFILE_NAME=${NACOS_PROFILE_NAME} + - NACOS_NAME_SPACE=${NACOS_NAME_SPACE} + - NACOS_SERVER_NAME=${NACOS_SERVER_NAME} + - NACOS_SERVER_IP=${NACOS_SERVER_IP} + - NACOS_SERVER_PORT=${NACOS_SERVER_PORT} + - AUTH_SERVER_PORT=${AUTH_SERVER_PORT} + - SPRING_CONFIG_LOCATION=optional:classpath:/,optional:file:/opt/wfc/conf/ + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:${AUTH_SERVER_PORT}/actuator/health || exit 1"] + interval: 30s + timeout: 30s + retries: 10 + restart: ${RESTART_OPTION} + + wfc-modules-system: + image: wfc-java:jre8 + container_name: wfc-modules-system + ports: + - "${WFC_SYSTEM_PORT}:${WFC_SYSTEM_PORT}" + - "5005:5005" # 调试端口映射 + networks: + - wfc-be-network + volumes: + - ./wfc/modules/system/jar/wfc-modules-system.jar:/opt/wfc/app.jar + - ./conf/application-common.yml:/opt/wfc/conf/application-common.yml + - ./wfc/modules/system/conf/application.yml:/opt/wfc/conf/application.yml + depends_on: + wfc-redis: + condition: service_healthy + wfc-mysql: + condition: service_healthy + wfc-auth: + condition: service_healthy + wfc-gateway: + condition: service_healthy + environment: + - NACOS_PROFILE_NAME=${NACOS_PROFILE_NAME} + - NACOS_NAME_SPACE=${NACOS_NAME_SPACE} + - NACOS_SERVER_NAME=${NACOS_SERVER_NAME} + - NACOS_SERVER_IP=${NACOS_SERVER_IP} + - NACOS_SERVER_PORT=${NACOS_SERVER_PORT} + - WFC_SYSTEM_PORT=${WFC_SYSTEM_PORT} + - SPRING_CONFIG_LOCATION=optional:classpath:/,optional:file:/opt/wfc/conf/ + - JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5005 # 调试参数 + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:${WFC_SYSTEM_PORT}/actuator/health || exit 1"] + interval: 30s + timeout: 10s + retries: 3 + restart: ${RESTART_OPTION} + + wfc-modules-user: + image: wfc-java:jre8 + container_name: wfc-modules-user + ports: + - "${WFC_USER_PORT}:${WFC_USER_PORT}" + - "5006:5006" # 调试端口映射 + networks: + - wfc-be-network + volumes: + - ./wfc/modules/user/jar/wfc-modules-user.jar:/opt/wfc/app.jar + - ./conf/application-common.yml:/opt/wfc/conf/application-common.yml + - ./wfc/modules/user/conf/application.yml:/opt/wfc/conf/application.yml + depends_on: + wfc-redis: + condition: service_healthy + wfc-mysql: + condition: service_healthy + wfc-auth: + condition: service_healthy + wfc-gateway: + condition: service_healthy + environment: + - NACOS_PROFILE_NAME=${NACOS_PROFILE_NAME} + - NACOS_NAME_SPACE=${NACOS_NAME_SPACE} + - NACOS_SERVER_NAME=${NACOS_SERVER_NAME} + - NACOS_SERVER_IP=${NACOS_SERVER_IP} + - NACOS_SERVER_PORT=${NACOS_SERVER_PORT} + - WFC_USER_PORT=${WFC_USER_PORT} + - SPRING_CONFIG_LOCATION=optional:classpath:/,optional:file:/opt/wfc/conf/ + - JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=0.0.0.0:5006 # 调试参数 + healthcheck: + test: ["CMD-SHELL", "curl -f http://localhost:${WFC_USER_PORT}/actuator/health || exit 1"] + interval: 30s + timeout: 10s + retries: 3 + restart: ${RESTART_OPTION} + + wfc-modules-file: + image: wfc-java:jre8 + container_name: wfc-modules-file + ports: + - "${WFC_FILE_PORT}:${WFC_FILE_PORT}" + networks: + - wfc-be-network + volumes: + - ./wfc/modules/file/jar/wfc-modules-file.jar:/opt/wfc/app.jar + - ./wfc/modules/file/upload:/opt/wfc/upload + - ./wfc/modules/file/logs/:/opt/wfc/logs/ + - ./conf/application-common.yml:/opt/wfc/conf/application-common.yml + - ./wfc/modules/file/conf/application.yml:/opt/wfc/conf/application.yml + depends_on: + wfc-auth: + condition: service_healthy + wfc-gateway: + condition: service_healthy + environment: + - NACOS_PROFILE_NAME=${NACOS_PROFILE_NAME} + - NACOS_NAME_SPACE=${NACOS_NAME_SPACE} + - NACOS_SERVER_NAME=${NACOS_SERVER_NAME} + - NACOS_SERVER_IP=${NACOS_SERVER_IP} + - NACOS_SERVER_PORT=${NACOS_SERVER_PORT} + - WFC_FILE_PORT=${WFC_FILE_PORT} + - SPRING_CONFIG_LOCATION=optional:classpath:/,optional:file:/opt/wfc/conf/ + restart: ${RESTART_OPTION} + + wfc-modules-job: + image: wfc-java:jre8 + container_name: wfc-modules-job + ports: + - "${WFC_JOB_PORT}:${WFC_JOB_PORT}" + networks: + - wfc-be-network + volumes: + - ./wfc/modules/job/jar/wfc-modules-job.jar:/opt/wfc/app.jar + - ./conf/application-common.yml:/opt/wfc/conf/application-common.yml + - ./wfc/modules/job/conf/application.yml:/opt/wfc/conf/application.yml + depends_on: + wfc-mysql: + condition: service_healthy + wfc-auth: + condition: service_healthy + wfc-gateway: + condition: service_healthy + environment: + - NACOS_PROFILE_NAME=${NACOS_PROFILE_NAME} + - NACOS_NAME_SPACE=${NACOS_NAME_SPACE} + - NACOS_SERVER_NAME=${NACOS_SERVER_NAME} + - NACOS_SERVER_IP=${NACOS_SERVER_IP} + - NACOS_SERVER_PORT=${NACOS_SERVER_PORT} + - WFC_JOB_PORT=${WFC_JOB_PORT} + - SPRING_CONFIG_LOCATION=optional:classpath:/,optional:file:/opt/wfc/conf/ + restart: ${RESTART_OPTION} + + wfc-modules-payment: + image: wfc-java:jre8 + container_name: wfc-modules-payment + ports: + - "${WFC_PAYMENT_PORT}:${WFC_PAYMENT_PORT}" + networks: + - wfc-be-network + volumes: + - ./wfc/modules/payment/jar/wfc-modules-payment.jar:/opt/wfc/app.jar + - ./wfc/modules/payment/logs/:/opt/wfc/logs/ + - ./conf/application-common.yml:/opt/wfc/conf/application-common.yml + - ./wfc/modules/payment/conf/application.yml:/opt/wfc/conf/application.yml + depends_on: + wfc-redis: + condition: service_healthy + wfc-mysql: + condition: service_healthy + wfc-auth: + condition: service_healthy + wfc-gateway: + condition: service_healthy + environment: + - NACOS_PROFILE_NAME=${NACOS_PROFILE_NAME} + - NACOS_NAME_SPACE=${NACOS_NAME_SPACE} + - NACOS_SERVER_NAME=${NACOS_SERVER_NAME} + - NACOS_SERVER_IP=${NACOS_SERVER_IP} + - NACOS_SERVER_PORT=${NACOS_SERVER_PORT} + - WFC_PAYMENT_PORT=${WFC_PAYMENT_PORT} + - SPRING_CONFIG_LOCATION=optional:classpath:/,optional:file:/opt/wfc/conf/ + restart: ${RESTART_OPTION} + + wfc-nginx: + image: nginx + container_name: wfc-nginx + build: + context: ./nginx + ports: + - "${WFC_SERVER_PORT}:${WFC_SERVER_PORT}" + networks: + - wfc-fe-network + - wfc-be-network + volumes: + - ./nginx/html/dist:/opt/wfc/portal + - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf + - ./nginx/logs:/var/log/nginx + - ./nginx/conf.d:/etc/nginx/conf.d + depends_on: + wfc-modules-system: + condition: service_healthy + wfc-modules-user: + condition: service_healthy + environment: + - GATEWAY_SERVER_IP=${GATEWAY_SERVER_IP} + - GATEWAY_SERVER_PORT=${GATEWAY_SERVER_PORT} + - WFC_SERVER_IP=${WFC_SERVER_IP} + - WFC_SERVER_PORT=${WFC_SERVER_PORT} + restart: ${RESTART_OPTION} + +networks: + wfc-fe-network: + name: wfc-fe-network + driver: bridge + wfc-be-network: + name: wfc-be-network + driver: bridge + ipam: + driver: default \ No newline at end of file diff --git a/build/docker/docker-compose.yml b/build/docker/compose/docker-compose.yml similarity index 99% rename from build/docker/docker-compose.yml rename to build/docker/compose/docker-compose.yml index 5ce9711..0387245 100644 --- a/build/docker/docker-compose.yml +++ b/build/docker/compose/docker-compose.yml @@ -141,7 +141,7 @@ services: - NACOS_SERVER_IP=${NACOS_SERVER_IP} - NACOS_SERVER_PORT=${NACOS_SERVER_PORT} - AUTH_SERVER_PORT=${AUTH_SERVER_PORT} - - SPRING_CONFIG_LOCATION=optional:classpath:/,optional:file:/opt/wfc/conf/ + - SPRING_CONFIG_LOCATION=optional:classpath:/,optional:file:/opt/wfc/conf/ healthcheck: test: ["CMD-SHELL", "curl -f http://localhost:${AUTH_SERVER_PORT}/actuator/health || exit 1"] interval: 30s diff --git a/build/docker/conf/default/application-common.yml b/build/docker/conf/default/application-common.yml index 744a8a7..f6657fe 100644 --- a/build/docker/conf/default/application-common.yml +++ b/build/docker/conf/default/application-common.yml @@ -8,6 +8,10 @@ spring: messages: # 国际化资源文件路径 basename: i18n/messages + # Enable remote debugging + devtools: + remote: + secret: 123456 # feign 配置 feign: