我想请您帮助了解如何根据scale id动态绑定/Map外部目录(我的工作站)和内部目录(docker容器)?
例如。:
如果我使用--scale=1,内部目录(docker容器)将是/logs1
如果我使用--scale=2,内部目录将是/logs2
如果我使用--scale=3,内部目录将是/logs3
等等
至于外部目录,没有问题,因为我总是可以创建一个脚本,该脚本将循环docker示例的数量,以创建所有本地目录
这是我的.env文件:
# replace with the absolute path where is located the war file
EDAPI_WAR_LOCAL_PATH=./restapi-war-6.2021.05-RC1.war
EDAPI_WAR_CONTAINER_PATH=/usr/local/tomcat/webapps/restapi.war
MRAS_CONFIG_LOCAL_PATH=./mras-config
MRAS_CONFIG_CONTAINER_PATH=/usr/local/tomcat/config/mras
MRAS_LOG_LOCAL_PATH=./logfiles/mras
MRAS_LOG_CONTAINER_PATH=/usr/local/tomcat/logfiles/mras
SERVER_XML_CONFIG_LOCAL_PATH=./server.xml
SERVER_XML_CONFIG_CONTAINER_PATH=/usr/local/tomcat/conf/server.xml
# hazelcast configuration
HAZELCAST_GROUP=hz-compose
HAZELCAST_GROUP_PWD=XXX
HAZELCAST_CLIENT_SERVER_MODE=true
HAZELCAST_MANCENTER_ENDPOINT=http://mancenter:8080/hazelcast-mancenter
# map name prefix: connect to the same hazelcast cluster with different clients
HAZELCAST_MAP_GROUP_NAME=
# enable if you would like to user mras_2 service
# HAZELCAST_MAP_GROUP_NAME2=
# the token prefixes
TOKEN_PREFIX_MRAS1=
TOKEN_PREFIX_MRAS2=
my docker-compose.yml:
version: '3'
services:
reverse-proxy:
image: traefik:v2.3
command: --api.insecure=true --providers.docker
ports:
- "80:80"
- "9090:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- "traefik.enable=false"
mras:
image: tomcat:9-jdk8
volumes:
- ${MRAS_CONFIG_LOCAL_PATH}:${MRAS_CONFIG_CONTAINER_PATH}
- ${EDAPI_WAR_LOCAL_PATH}:${EDAPI_WAR_CONTAINER_PATH}
- ${SERVER_XML_CONFIG_LOCAL_PATH}:${SERVER_XML_CONFIG_CONTAINER_PATH}
- ${MRAS_LOG_LOCAL_PATH}${SCALE_ID}:${MRAS_LOG_CONTAINER_PATH}${SCALE_ID}
environment:
- JPDA_ADDRESS=8000
- JPDA_TRANSPORT=dt_socket
- JAVA_OPTS=-Ddebug -Dhazelcast.member.address=hazelcast -Dhazelcast.mancenter.url=${HAZELCAST_MANCENTER_ENDPOINT} -Dgroup.name=${HAZELCAST_GROUP} -Dgroup.password=${HAZELCAST_GROUP_PWD} -Dhazelcast.enableClientServerMode=${HAZELCAST_CLIENT_SERVER_MODE} -Dhazelcast.mapGroupName=${HAZELCAST_MAP_GROUP_NAME} -DtokenPrefix=${TOKEN_PREFIX_MRAS1}
- SCALE_ID="{DOCKER_HOST}""
command: ["catalina.sh", "jpda", "run"]
labels:
- "traefik.enable=true"
- "traefik.http.routers.mras-mras-docker.rule=PathPrefix(`/restapi`)"
- "traefik.http.services.mras-mras-docker.loadbalancer.server.port=8080"
depends_on:
- hazelcast
ports:
- "19090-19093:8080"
- "18800-18803:8000"
- "15910-15913:5910"
hazelcast:
image: hazelcast/hazelcast:3.11
volumes:
- ./hazelcast-config:/configFolder
environment:
- JAVA_OPTS=-Ddebug -Dhazelcast.shutdownhook.policy=GRACEFUL -Dhazelcast.diagnostics.enabled=true -Dhazelcast.config=/configFolder/hazelcast.xml -Dhazelcast.port=5701 -Dhazelcast.mancenter.url=${HAZELCAST_MANCENTER_ENDPOINT} -Dgroup.name=${HAZELCAST_GROUP} -Dgroup.password=${HAZELCAST_GROUP_PWD}
links:
- "management-center:mancenter"
labels:
- "traefik.enable=false"
management-center:
image: hazelcast/management-center:3.11
environment:
- JAVA_OPTS=-Dhazelcast.mc.rest.enabled=true
ports:
- 8080:8080
labels:
- "traefik.enable=false"
暂无答案!
目前还没有任何答案,快来回答吧!