{"owner":"jeequan","repo":"jeepay","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker-compose.baota.yml","servicesCount":9,"services":[{"name":"jeepay-configs","image":"${JEEPAY_CONFIGS_IMAGE:-alpine/git:v2.45.2}","command":"sh -c set -e\nrm -rf /tmp/jeepay-src\ngit clone --branch ${CONFIG_REF:-master} --depth 1 https://gitee.com/jeequan/jeepay.git /tmp/jeepay-src\n\nmkdir -p /jeepayhomes/jeepayConfigs/db \\\n         /jeepayhomes/jeepayConfigs/redis \\\n         /jeepayhomes/jeepayConfigs/rocketmq \\\n         /jeepayhomes/jeepayConfigs/service/manager \\\n         /jeepayhomes/jeepayConfigs/service/merchant \\\n         /jeepayhomes/jeepayConfigs/service/payment \\\n         /jeepayhomes/jeepayConfigs/nginx/conf.d \\\n         /jeepayhomes/jeepayConfigs/nginx/html\n\ncp -n /tmp/jeepay-src/docs/install/include/my.cnf             /jeepayhomes/jeepayConfigs/db/my.cnf                         || true\ncp -n /tmp/jeepay-src/docs/sql/init.sql                       /jeepayhomes/jeepayConfigs/db/init.sql                       || true\ncp -n /tmp/jeepay-src/docs/install/include/redis.conf         /jeepayhomes/jeepayConfigs/redis/redis.conf                  || true\ncp -n /tmp/jeepay-src/docker/rocketmq/broker/conf/broker.conf /jeepayhomes/jeepayConfigs/rocketmq/broker.conf              || true\ncp -n /tmp/jeepay-src/conf/manager/application.yml            /jeepayhomes/jeepayConfigs/service/manager/application.yml   || true\ncp -n /tmp/jeepay-src/conf/merchant/application.yml           /jeepayhomes/jeepayConfigs/service/merchant/application.yml  || true\ncp -n /tmp/jeepay-src/conf/payment/application.yml            /jeepayhomes/jeepayConfigs/service/payment/application.yml   || true\n\n# 上游 conf/*/application.yml 里 datasource 密码是占位 \"rootroot\"（和仓库\n# docker-compose.yml 的默认 MYSQL_ROOT_PASSWORD 一致），宝塔场景下 MySQL\n# 初始化密码由 MYSQL_ROOT_PASSWORD 变量控制（默认 jeepaydb123456），不改\n# 则 Access denied。用 grep 条件做幂等替换，只有还存在 \"password: rootroot\"\n# 才改，尊重用户后续自定义。$$ 是给 compose 的转义，防止 compose YAML 解析\n# 时把 shell 变量吞掉。\nfor svc in manager merchant payment; do\n    yml=\"/jeepayhomes/jeepayConfigs/service/$$svc/application.yml\"\n    if [ -f \"$$yml\" ] && grep -q \"password: rootroot\" \"$$yml\"; then\n        sed -i \"s|password: rootroot|password: $${MYSQL_ROOT_PASSWORD}|g\" \"$$yml\"\n        echo \"$$yml: datasource password rewrote\"\n    fi\ndone\ncp -n /tmp/jeepay-src/docs/install/include/nginx.conf         /jeepayhomes/jeepayConfigs/nginx/nginx.conf                  || true\n# nginx.conf 在 install.sh 场景下用 localhost:921x（nginx --net=host 可达），\n# 但 compose 场景下 nginx 在 bridge 网络，localhost 解析不到后端。只要还能\n# 找到 localhost:921x 就替换成 compose service 名；用户若已改过就不动。\nif grep -q \"proxy_pass http://localhost:921\" /jeepayhomes/jeepayConfigs/nginx/nginx.conf 2>/dev/null; then\n    sed -i \\\n        -e 's|proxy_pass http://localhost:9216|proxy_pass http://jeepaypayment:9216|g' \\\n        -e 's|proxy_pass http://localhost:9217|proxy_pass http://jeepaymanager:9217|g' \\\n        -e 's|proxy_pass http://localhost:9218|proxy_pass http://jeepaymerchant:9218|g' \\\n        /jeepayhomes/jeepayConfigs/nginx/nginx.conf\n    echo \"nginx.conf: localhost proxy_pass rewrote to compose service names\"\nfi\n\nrm -rf /jeepayhomes/jeepayConfigs/.latest\nmkdir -p /jeepayhomes/jeepayConfigs/.latest\ncp -r /tmp/jeepay-src/conf                                    /jeepayhomes/jeepayConfigs/.latest/conf\ncp -r /tmp/jeepay-src/docs/install/include                    /jeepayhomes/jeepayConfigs/.latest/include\ncp    /tmp/jeepay-src/docker/rocketmq/broker/conf/broker.conf /jeepayhomes/jeepayConfigs/.latest/broker.conf               || true\ncp    /tmp/jeepay-src/docs/sql/init.sql                       /jeepayhomes/jeepayConfigs/.latest/init.sql                  || true\n\n# 前端静态资源（jeepay-ui 已打包发布到 gitee release）。目标目录已存在则跳过，\n# 保护用户后续对 html/ 的改动（和 cp -n 同语义）\nif [ ! -f /jeepayhomes/jeepayConfigs/nginx/html/jeepaymanager/index.html ]; then\n    echo \"Downloading frontend html.tar.gz (release=${UI_RELEASE:-V3.0.0}) ...\"\n    wget -q -O /tmp/html.tar.gz \\\n        \"https://gitee.com/jeequan/jeepay-ui/releases/download/${UI_RELEASE:-V3.0.0}/html.tar.gz\"\n    tar xzf /tmp/html.tar.gz -C /jeepayhomes/jeepayConfigs/nginx/html/\n    rm -f /tmp/html.tar.gz\n    echo \"Frontend extracted to nginx/html/\"\nelse\n    echo \"Frontend already present, skip download\"\nfi\n\necho \"jeepay-configs ready (user edits preserved; upstream templates in .latest/)\"\n","environment":["MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-jeepaydb123456}"],"volumes":["${APP_PATH}/jeepayhomes/:/jeepayhomes"]},{"name":"mysql","image":"${MYSQL_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/mysql:8.0.25}","restart":"always","environment":["LANG=C.UTF-8","MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-jeepaydb123456}","MYSQL_DATABASE=jeepaydb"],"volumes":["/etc/localtime:/etc/localtime:ro","${APP_PATH}/jeepayhomes/mysql/log:/var/log/mysql","${APP_PATH}/jeepayhomes/mysql/data:/var/lib/mysql","${APP_PATH}/jeepayhomes/mysql/mysql-files:/var/lib/mysql-files","${APP_PATH}/jeepayhomes/jeepayConfigs/db:/etc/mysql/conf.d","${APP_PATH}/jeepayhomes/jeepayConfigs/db/init.sql:/docker-entrypoint-initdb.d/init.sql:ro"],"depends_on":["jeepay-configs"]},{"name":"redis","image":"${REDIS_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/redis:6.2.14}","restart":"always","command":"redis-server /etc/redis/redis.conf","volumes":["/etc/localtime:/etc/localtime:ro","${APP_PATH}/jeepayhomes/jeepayConfigs/redis/redis.conf:/etc/redis/redis.conf","${APP_PATH}/jeepayhomes/redis/data:/data"],"depends_on":["jeepay-configs"]},{"name":"rocketmq-namesrv","image":"${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq:5.3.1}","restart":"always","command":"sh mqnamesrv","environment":["JAVA_OPT_EXT=-Xms256m -Xmx256m -Xmn128m"],"volumes":["/etc/localtime:/etc/localtime:ro","${APP_PATH}/jeepayhomes/rocketmq/namesrv/logs:/home/rocketmq/logs"],"depends_on":["jeepay-configs"]},{"name":"rocketmq-broker","image":"${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq:5.3.1}","restart":"always","command":"sh mqbroker -n rocketmq-namesrv:9876 -c /home/rocketmq/rocketmq-5.3.1/conf/broker.conf","environment":["NAMESRV_ADDR=rocketmq-namesrv:9876","JAVA_OPT_EXT=-Xms512m -Xmx512m -Xmn256m"],"volumes":["/etc/localtime:/etc/localtime:ro","${APP_PATH}/jeepayhomes/rocketmq/broker/logs:/home/rocketmq/logs","${APP_PATH}/jeepayhomes/rocketmq/broker/store:/home/rocketmq/store","${APP_PATH}/jeepayhomes/jeepayConfigs/rocketmq/broker.conf:/home/rocketmq/rocketmq-5.3.1/conf/broker.conf:ro"],"depends_on":["rocketmq-namesrv","jeepay-configs"]},{"name":"jeepay-manager","image":"${MANAGER_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/jeepay-manager:${VERSION}}","restart":"always","volumes":["/etc/localtime:/etc/localtime:ro","${APP_PATH}/jeepayhomes/service/logs:/jeepayhomes/service/logs","${APP_PATH}/jeepayhomes/service/uploads:/jeepayhomes/service/uploads","${APP_PATH}/jeepayhomes/jeepayConfigs/service/manager/application.yml:/jeepayhomes/service/app/application.yml"],"depends_on":["mysql","redis","rocketmq-broker","jeepay-configs"]},{"name":"jeepay-merchant","image":"${MERCHANT_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/jeepay-merchant:${VERSION}}","restart":"always","volumes":["/etc/localtime:/etc/localtime:ro","${APP_PATH}/jeepayhomes/service/logs:/jeepayhomes/service/logs","${APP_PATH}/jeepayhomes/service/uploads:/jeepayhomes/service/uploads","${APP_PATH}/jeepayhomes/jeepayConfigs/service/merchant/application.yml:/jeepayhomes/service/app/application.yml"],"depends_on":["mysql","redis","rocketmq-broker","jeepay-configs"]},{"name":"jeepay-payment","image":"${PAYMENT_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/jeepay-payment:${VERSION}}","restart":"always","volumes":["/etc/localtime:/etc/localtime:ro","${APP_PATH}/jeepayhomes/service/logs:/jeepayhomes/service/logs","${APP_PATH}/jeepayhomes/service/uploads:/jeepayhomes/service/uploads","${APP_PATH}/jeepayhomes/jeepayConfigs/service/payment/application.yml:/jeepayhomes/service/app/application.yml"],"depends_on":["mysql","redis","rocketmq-broker","jeepay-configs"]},{"name":"BT_SERVICE_NAME6","image":"${NGINX_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/nginx:1.18.0}","restart":"always","ports":["${HOST_IP}:${WEB_HTTP_PORT1}:19216","${HOST_IP}:${WEB_HTTP_PORT2}:19217","${HOST_IP}:${WEB_HTTP_PORT3}:19218"],"volumes":["/etc/localtime:/etc/localtime:ro","${APP_PATH}/jeepayhomes/jeepayConfigs/nginx/nginx.conf:/etc/nginx/nginx.conf","${APP_PATH}/jeepayhomes/jeepayConfigs/nginx/conf.d:/etc/nginx/conf.d","${APP_PATH}/jeepayhomes/nginx/logs:/var/log/nginx","${APP_PATH}/jeepayhomes/jeepayConfigs/nginx/html:/usr/share/nginx/html"],"depends_on":["jeepay-payment","jeepay-manager","jeepay-merchant","jeepay-configs"]}],"exposedPorts":["1","2","3"],"dockerRunCommand":"docker run -d --name jeepay -p 1:1 --restart always ${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq:5.3.1}","podmanRunCommand":"podman run -d --name jeepay -p 1:1 --restart always ${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq:5.3.1}","skopeoInspectCommand":"skopeo inspect docker://docker.io/library/${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq","orasPullCommand":"oras pull ${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq:5.3.1}","registryMeta":{"provider":"dockerhub","image":"library/${ROCKETMQ_IMAGE","canonicalImage":"docker.io/library/${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq","latestTag":"-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq","cliCommands":{"dockerRun":"docker run -d --name jeepay -p 1:1 --restart always ${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq:5.3.1}","dockerPull":"docker pull ${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq:5.3.1}","podmanRun":"podman run -d --name jeepay -p 1:1 --restart always ${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq:5.3.1}","skopeoInspect":"skopeo inspect docker://docker.io/library/${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq","orasPull":"oras pull ${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq:5.3.1}","composeYaml":"services:\n  jeepay:\n    image: ${ROCKETMQ_IMAGE:-swr.cn-south-1.myhuaweicloud.com/jeepay/rocketmq:5.3.1}\n    restart: unless-stopped\n    ports:\n      - \"1:1\""}}}