Skip to content

Commit 9c9fb6d

Browse files
authored
Merge pull request docker-archive#475 from docker/metatoken-azure
Metatoken azure
2 parents d9faecd + b855521 commit 9c9fb6d

File tree

13 files changed

+129
-69
lines changed

13 files changed

+129
-69
lines changed

Makefile

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
EDITIONS_TAG := beta10
2-
EDITIONS_DOCKER_VERSION := 1.12.3
1+
EDITIONS_TAG := beta11
2+
EDITIONS_DOCKER_VERSION := 1.13.0-rc1
33
EDITIONS_VERSION := $(EDITIONS_DOCKER_VERSION)-$(EDITIONS_TAG)
44
REGION := us-west-1
55
CHANNEL := beta
66
CHANNEL_DDC := alpha
77
CHANNEL_CLOUD := alpha
88
DOCKER_EXPERIMENTAL := 1
99
VHD_SKU := docker4azure
10-
VHD_VERSION := 1.12.18
10+
VHD_VERSION := 1.12.20
1111
# stage offer will have the -preview
1212
OFFER_ID := docker4azure
1313
CS_VHD_SKU := docker4azure-cs-1_12
14-
CS_VHD_VERSION := 1.0.1
14+
CS_VHD_VERSION := 1.0.4
1515
# stage offer will have the -preview
1616
CS_OFFER_ID := docker4azure-cs-preview
1717
export
@@ -21,7 +21,13 @@ release: moby/alpine/cloud/aws/ami_id.out moby/alpine/cloud/azure/vhd_blob_url.o
2121
# VHD=$(shell cat moby/alpine/cloud/azure/vhd_blob_url.out)
2222

2323
dockerimages: buoy
24+
dockerimages-aws
25+
dockerimages-azure
26+
27+
dockerimages-aws:
2428
$(MAKE) -C aws/dockerfiles
29+
30+
dockerimages-azure:
2531
$(MAKE) -C azure/dockerfiles
2632

2733
buoy:

aws/dockerfiles/Dockerfile.meta

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ RUN apk add --update ca-certificates && rm -Rf /tmp/* /var/lib/cache/apk/*
66
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
77

88
ADD files/bin/metaserver /usr/local/bin/
9+
RUN chmod +x /usr/local/bin/metaserver
910

1011
CMD [ "metaserver" ]

azure/dockerfiles/Dockerfile.meta

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
FROM alpine:3.4
2+
3+
RUN apk add --update ca-certificates && rm -Rf /tmp/* /var/lib/cache/apk/*
4+
5+
# needed in order for go binary to work.
6+
RUN mkdir /lib64 && ln -s /lib/libc.musl-x86_64.so.1 /lib64/ld-linux-x86-64.so.2
7+
8+
ADD files/bin/metaserver /usr/local/bin/
9+
RUN chmod +x /usr/local/bin/metaserver
10+
11+
CMD [ "metaserver" ]

azure/dockerfiles/build_and_push_all.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set -e
55
NAMESPACE="${NAMESPACE:-docker4x}"
66
VERSION="${VERSION:-latest}"
77

8-
for IMAGE in init guide create-sp ddc-init cloud logger
8+
for IMAGE in init guide create-sp ddc-init cloud logger meta
99
do
1010
FINAL_IMAGE="${NAMESPACE}/${IMAGE}-azure:${VERSION}"
1111
docker build --pull -t "${FINAL_IMAGE}" -f "Dockerfile.${IMAGE}" .

azure/dockerfiles/files/guide/refresh.sh

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,13 @@ IS_LEADER=$(docker node inspect self -f '{{ .ManagerStatus.Leader }}')
99

1010
if [[ "$IS_LEADER" == "true" ]]; then
1111
# we are the leader, We only need to call once, so we only call from the current leader.
12-
DATA=$(python /usr/bin/azuretokens.py get-tokens)
13-
MANAGER_IP=$(echo $DATA | cut -d'|' -f 1)
14-
STORED_MANAGER_TOKEN=$(echo $DATA | cut -d'|' -f 2)
15-
STORED_WORKER_TOKEN=$(echo $DATA | cut -d'|' -f 3)
12+
MYIP=$(ifconfig eth0 | grep "inet addr:" | cut -d: -f2 | cut -d" " -f1)
13+
CURRENT_MANAGER_IP=$(python /usr/bin/azureleader.py get-ip)
14+
echo "Current manager IP = $CURRENT_MANAGER_IP ; my IP = $MYIP"
1615

17-
MANAGER_TOKEN=$(docker swarm join-token manager -q)
18-
WORKER_TOKEN=$(docker swarm join-token worker -q)
19-
20-
if [[ "$STORED_MANAGER_TOKEN" != "$MANAGER_TOKEN" ]] || [[ "$STORED_WORKER_TOKEN" != "$WORKER_TOKEN" ]]; then
21-
echo "Swarm tokens changed, updating azure table with new tokens"
22-
python /usr/bin/azuretokens.py insert-tokens $MANAGER_IP $MANAGER_TOKEN $WORKER_TOKEN
16+
if [ "$CURRENT_MANAGER_IP" == "$MYIP" ]; then
17+
echo "Swarm Manager IP changed, updating azure table with new ip"
18+
python /usr/bin/azureleader.py insert-ip $MYIP
2319
fi
2420

2521
fi

azure/dockerfiles/files/init/azuretokens.py renamed to azure/dockerfiles/files/init/azureleader.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,23 +36,23 @@ def get_storage_key():
3636
return storage_keys['key1']
3737

3838

39-
def print_tokens(sa_key):
39+
def print_ip(sa_key):
4040
global PARTITION_NAME, ROW_ID, SA_NAME, TBL_NAME
4141
tbl_svc = TableService(account_name=SA_NAME, account_key=sa_key)
4242
if not tbl_svc.exists(TBL_NAME):
4343
return False
4444
try:
4545
token = tbl_svc.get_entity(TBL_NAME, PARTITION_NAME, ROW_ID)
46-
print '{}|{}|{}'.format(token.manager_ip, token.manager_token, token.worker_token)
46+
print('{}'.format(token.manager_ip))
4747
return True
4848
except:
4949
return False
5050

5151

52-
def insert_tokens(sa_key, manager_ip, manager_token, worker_token):
52+
def insert_ip(sa_key, manager_ip):
5353
global PARTITION_NAME, ROW_ID, TBL_NAME, SA_NAME
5454
tbl_svc = TableService(account_name=SA_NAME, account_key=sa_key)
55-
token = {'PartitionKey': PARTITION_NAME, 'RowKey': ROW_ID, 'manager_ip': manager_ip, 'manager_token': manager_token, 'worker_token': worker_token}
55+
token = {'PartitionKey': PARTITION_NAME, 'RowKey': ROW_ID, 'manager_ip': manager_ip}
5656
try:
5757
# this upsert operation should always succeed
5858
tbl_svc.insert_or_replace_entity(TBL_NAME, token)
@@ -80,11 +80,9 @@ def main():
8080
parser = argparse.ArgumentParser(description='Tool to store Docker Swarm info in Azure Tables')
8181
subparsers = parser.add_subparsers(help='commands', dest='action')
8282
create_table_parser = subparsers.add_parser('create-table', help='Create table specified in env var AZURE_TBL_NAME')
83-
get_tokens_parser = subparsers.add_parser('get-tokens', help='Get swarm info from table specified in env var AZURE_TBL_NAME')
84-
insert_tokens_parser = subparsers.add_parser('insert-tokens', help='Insert swarm info to table specified in env var AZURE_TBL_NAME')
83+
get_tokens_parser = subparsers.add_parser('get-ip', help='Get swarm info from table specified in env var AZURE_TBL_NAME')
84+
insert_tokens_parser = subparsers.add_parser('insert-ip', help='Insert swarm info to table specified in env var AZURE_TBL_NAME')
8585
insert_tokens_parser.add_argument('ip', help='IP address of the primary swarm manager')
86-
insert_tokens_parser.add_argument('manager_token', help='Manager Token for the swarm')
87-
insert_tokens_parser.add_argument('worker_token', help='Worker token for the swarm')
8886

8987
args = parser.parse_args()
9088

@@ -93,10 +91,10 @@ def main():
9391
if args.action == 'create-table':
9492
if not create_table(key):
9593
sys.exit(1)
96-
elif args.action == 'get-tokens':
97-
print_tokens(key)
98-
elif args.action == 'insert-tokens':
99-
insert_tokens(key, args.ip, args.manager_token, args.worker_token)
94+
elif args.action == 'get-ip':
95+
print_ip(key)
96+
elif args.action == 'insert-ip':
97+
insert_ip(key, args.ip)
10098
else:
10199
parser.print_usage()
102100

azure/dockerfiles/files/init/entry.sh

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -28,32 +28,40 @@ get_node_id()
2828
echo "NODE: $NODE_ID"
2929
}
3030

31-
get_tokens_db()
31+
get_tokens()
3232
{
33-
echo "Get tokens from Azure Table"
34-
DATA=$(python azuretokens.py get-tokens)
35-
export MANAGER_IP=$(echo $DATA | cut -d'|' -f 1)
36-
export MANAGER_TOKEN=$(echo $DATA | cut -d'|' -f 2)
37-
export WORKER_TOKEN=$(echo $DATA | cut -d'|' -f 3)
38-
39-
echo "MANAGER_TOKEN=$MANAGER_TOKEN"
40-
echo "WORKER_TOKEN=$WORKER_TOKEN"
33+
echo "Get MANAGER IP from Azure Table"
34+
export MANAGER_IP=$(python azureleader.py get-ip)
35+
get_manager_token
36+
get_worker_token
4137
}
4238

43-
get_tokens_local()
39+
get_manager_token()
4440
{
45-
export MANAGER_TOKEN=$(docker swarm join-token manager -q)
46-
export WORKER_TOKEN=$(docker swarm join-token worker -q)
47-
echo "MANAGER_TOKEN=$MANAGER_TOKEN"
48-
echo "WORKER_TOKEN=$WORKER_TOKEN"
41+
if [ -n "$MANAGER_IP" ]; then
42+
export MANAGER_TOKEN=$(wget -qO- http://$MANAGER_IP:9024/token/manager/)
43+
echo "MANAGER_TOKEN=$MANAGER_TOKEN"
44+
else
45+
echo "MANAGER_TOKEN can't be found yet. MANAGER_IP isn't set yet."
46+
fi
47+
}
48+
49+
get_worker_token()
50+
{
51+
if [ -n "$MANAGER_IP" ]; then
52+
export WORKER_TOKEN=$(wget -qO- http://$MANAGER_IP:9024/token/worker/)
53+
echo "WORKER_TOKEN=$WORKER_TOKEN"
54+
else
55+
echo "WORKER_TOKEN can't be found yet. MANAGER_IP isn't set yet."
56+
fi
4957
}
5058

5159
confirm_primary_ready()
5260
{
5361
n=0
5462
until [ $n -ge 5 ]
5563
do
56-
get_tokens_db
64+
get_tokens
5765
echo "PRIMARY_MANAGER_IP=$MANAGER_IP"
5866
# if Manager IP or manager_token is empty or manager_token is null, not ready yet.
5967
# token would be null for a short time between swarm init, and the time the
@@ -97,7 +105,7 @@ join_as_secondary_manager()
97105
n=$[$n+1]
98106

99107
# query azure table again, incase the manager changed
100-
get_tokens_db
108+
get_tokens
101109
else
102110
echo "Connected to primary manager, NODE_ID=$NODE_ID , SWARM_ID=$SWARM_ID"
103111
break
@@ -118,21 +126,20 @@ setup_manager()
118126
# try to create the azure table that will store tokens, if it succeeds then it is the first
119127
# and it is the primary manager. If it fails, then it isn't first, and treat the record
120128
# that is there, as the primary manager, and join that swarm.
121-
python azuretokens.py create-table
129+
python azureleader.py create-table
122130
PRIMARY_RESULT=$?
123131
echo " PRIMARY_RESULT=$PRIMARY_RESULT"
124132

125133
if [ $PRIMARY_RESULT -eq 0 ]; then
126134
echo " Primary Manager init"
127135
# we are the primary, so init the cluster
128136
docker swarm init --listen-addr $PRIVATE_IP:2377 --advertise-addr $PRIVATE_IP:2377
129-
# we can now get the tokens.
130-
get_tokens_local
137+
# we can now get the swarm id and node id.
131138
get_swarm_id
132139
get_node_id
133140

134-
# update azure table with the tokens
135-
python azuretokens.py insert-tokens $PRIVATE_IP $MANAGER_TOKEN $WORKER_TOKEN
141+
# update azure table with the ip
142+
python azureleader.py insert-ip $PRIVATE_IP
136143

137144
echo " Primary Manager init complete"
138145
# send identify message
@@ -177,7 +184,7 @@ setup_worker()
177184
n=$[$n+1]
178185

179186
# query azure table again, incase the manager changed
180-
get_tokens_db
187+
get_tokens
181188
else
182189
echo "Connected to manager, NODE_ID=$NODE_ID , SWARM_ID=$SWARM_ID"
183190
break
@@ -187,14 +194,16 @@ setup_worker()
187194
}
188195

189196
# init variables based on azure token table contents (if populated)
190-
get_tokens_db
197+
get_tokens
191198

192199
# if it is a manager, setup as manager, if not, setup as worker node.
193200
if [ "$ROLE" == "MANAGER" ] ; then
194201
echo " It's a Manager, run setup"
202+
get_manager_token
195203
setup_manager
196204
else
197205
echo " It's a worker Node, run setup"
206+
get_worker_token
198207
setup_worker
199208
fi
200209

azure/release/files/custom-data_manager.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ export SWARM_INFO_TABLE="variables('swarmInfoTable')"
1212
export SWARM_INFO_STORAGE_ACCOUNT="variables('swarmInfoStorageAccount')"
1313
export SWARM_LOGS_STORAGE_ACCOUNT="variables('swarmLogsStorageAccount')"
1414
export MANAGER_IP=$(ifconfig eth0 | grep "inet addr:" | cut -d: -f2 | cut -d" " -f1)
15+
export VMSS_MGR="dockerswarm-managervmss"
16+
export VMSS_WRK="dockerswarm-worker-vmss"
1517
# create daemon config with custom tag
1618
echo "{\"log-driver\": \"syslog\",\"log-opts\": {\"syslog-address\": \"udp://localhost:514\", \"tag\": \"{{.Name}}/{{.ID}}\" }}" > /etc/docker/daemon.json
1719
service docker restart
@@ -20,9 +22,13 @@ sleep 5
2022
# add logging container
2123
docker volume create --name container-logs
2224
docker run --log-driver=json-file --name=editions_logger --restart=always -d -e ROLE="$ROLE" -e REGION="$REGION" -e TENANT_ID="$TENANT_ID" -e APP_ID="$APP_ID" -e APP_SECRET="$APP_SECRET" -e ACCOUNT_ID="$ACCOUNT_ID" -e GROUP_NAME="$GROUP_NAME" -e SWARM_LOGS_STORAGE_ACCOUNT="$SWARM_LOGS_STORAGE_ACCOUNT" -e SWARM_FILE_SHARE=`hostname` -p 514:514/udp -v container-logs:/log/ docker4x/logger-azure:"$DOCKER_FOR_IAAS_VERSION"
23-
25+
# token server
26+
docker run --log-driver=json-file --name=meta-azure --restart=always -d -p $MANAGER_IP:9024:8080 -e APP_ID="$APP_ID" -e APP_SECRET="$APP_SECRET" -e SUBSCRIPTION_ID="$SUB_ID" -e TENANT_ID="$TENANT_ID" -e GROUP_NAME="$GROUP_NAME" -e VMSS_MGR="$VMSS_MGR" -e VMSS_WRK="$VMSS_WRK" -v /var/run/docker.sock:/var/run/docker.sock docker4x/meta-azure:$DOCKER_FOR_IAAS_VERSION metaserver -flavor=azure
27+
# init container
2428
docker run --log-driver=json-file --restart=no -d -e ROLE="$ROLE" -e REGION="$REGION" -e TENANT_ID="$TENANT_ID" -e APP_ID="$APP_ID" -e APP_SECRET="$APP_SECRET" -e ACCOUNT_ID="$ACCOUNT_ID" -e GROUP_NAME="$GROUP_NAME" -e PRIVATE_IP="$MANAGER_IP" -e DOCKER_FOR_IAAS_VERSION="$DOCKER_FOR_IAAS_VERSION" -e SWARM_INFO_TABLE="$SWARM_INFO_TABLE" -e SWARM_INFO_STORAGE_ACCOUNT="$SWARM_INFO_STORAGE_ACCOUNT" -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /var/log:/var/log docker4x/init-azure:"$DOCKER_FOR_IAAS_VERSION"
29+
# guide container
2530
docker run --log-driver=json-file --restart=always -d -e ROLE="$ROLE" -e REGION="$REGION" -e TENANT_ID="$TENANT_ID" -e APP_ID="$APP_ID" -e APP_SECRET="$APP_SECRET" -e ACCOUNT_ID="$ACCOUNT_ID" -e GROUP_NAME="$GROUP_NAME" -e PRIVATE_IP="$MANAGER_IP" -e DOCKER_FOR_IAAS_VERSION="$DOCKER_FOR_IAAS_VERSION" -e SWARM_INFO_TABLE="$SWARM_INFO_TABLE" -e SWARM_INFO_STORAGE_ACCOUNT="$SWARM_INFO_STORAGE_ACCOUNT" -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /var/log:/var/log docker4x/guide-azure:"$DOCKER_FOR_IAAS_VERSION"
2631
echo default: "$LB_NAME" >> /var/lib/docker/swarm/elb.config
2732
echo "$LB_NAME" > /var/lib/docker/swarm/lb_name
33+
# l4controller container
2834
docker run -d --log-driver=json-file -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/swarm:/var/lib/docker/swarm --name=editions_controller docker4x/l4controller-azure:"$DOCKER_FOR_IAAS_VERSION" run --ad_app_id="$APP_ID" --ad_app_secret="$APP_SECRET" --subscription_id="$SUB_ID" --resource_group="$GROUP_NAME" --log=4 --default_lb_name="$LB_NAME" --environment=AzurePublicCloud

azure/release/files/custom-data_manager_cloud.sh

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,38 @@ export LB_NAME="variables('lbName')"
88
export APP_ID="variables('adServicePrincipalAppID')"
99
export APP_SECRET="variables('adServicePrincipalAppSecret')"
1010
export TENANT_ID="variables('adServicePrincipalTenantID')"
11-
export CLOUD_USER="variables('dockerCloudUsername')"
12-
export CLOUD_KEY="variables('dockerCloudAPIKey')"
13-
export SWARM_NAME="variables('dockerCloudClusterName')"
1411
export SWARM_INFO_TABLE="variables('swarmInfoTable')"
1512
export SWARM_INFO_STORAGE_ACCOUNT="variables('swarmInfoStorageAccount')"
13+
export SWARM_LOGS_STORAGE_ACCOUNT="variables('swarmLogsStorageAccount')"
14+
export MANAGER_IP=$(ifconfig eth0 | grep "inet addr:" | cut -d: -f2 | cut -d" " -f1)
15+
export VMSS_MGR="dockerswarm-managervmss"
16+
export VMSS_WRK="dockerswarm-worker-vmss"
17+
# Cloud specific
18+
export SWARM_NAME="variables('dockerCloudClusterName')"
19+
export CLOUD_USER="variables('dockerCloudUsername')"
20+
export CLOUD_KEY="variables('dockerCloudAPIKey')"
1621

22+
# create daemon config with custom tag
23+
echo "{\"log-driver\": \"syslog\",\"log-opts\": {\"syslog-address\": \"udp://localhost:514\", \"tag\": \"{{.Name}}/{{.ID}}\" }}" > /etc/docker/daemon.json
24+
service docker restart
25+
sleep 5
26+
1727

28+
# add logging container
29+
docker volume create --name container-logs
30+
docker run --log-driver=json-file --name=editions_logger --restart=always -d -e ROLE="$ROLE" -e REGION="$REGION" -e TENANT_ID="$TENANT_ID" -e APP_ID="$APP_ID" -e APP_SECRET="$APP_SECRET" -e ACCOUNT_ID="$ACCOUNT_ID" -e GROUP_NAME="$GROUP_NAME" -e SWARM_LOGS_STORAGE_ACCOUNT="$SWARM_LOGS_STORAGE_ACCOUNT" -e SWARM_FILE_SHARE=`hostname` -p 514:514/udp -v container-logs:/log/ docker4x/logger-azure:"$DOCKER_FOR_IAAS_VERSION"
31+
# token server
32+
docker run --log-driver=json-file --name=meta-azure --restart=always -d -p $MANAGER_IP:9024:8080 -e APP_ID="$APP_ID" -e APP_SECRET="$APP_SECRET" -e SUBSCRIPTION_ID="$SUB_ID" -e TENANT_ID="$TENANT_ID" -e GROUP_NAME="$GROUP_NAME" -e VMSS_MGR="$VMSS_MGR" -e VMSS_WRK="$VMSS_WRK" -v /var/run/docker.sock:/var/run/docker.sock docker4x/meta-azure:$DOCKER_FOR_IAAS_VERSION metaserver -flavor=azure
33+
# init container
1834
docker run --restart=no -d -e ROLE="$ROLE" -e REGION="$REGION" -e TENANT_ID="$TENANT_ID" -e APP_ID="$APP_ID" -e APP_SECRET="$APP_SECRET" -e ACCOUNT_ID="$ACCOUNT_ID" -e PRIVATE_IP="$MANAGER_IP" -e DOCKER_FOR_IAAS_VERSION="$DOCKER_FOR_IAAS_VERSION" -e SWARM_INFO_TABLE="$SWARM_INFO_TABLE" -e SWARM_INFO_STORAGE_ACCOUNT="$SWARM_INFO_STORAGE_ACCOUNT" -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /var/log:/var/log docker4x/init-azure:"$DOCKER_FOR_IAAS_VERSION"
35+
# guide container
1936
docker run --restart=always -d -e ROLE="$ROLE -e REGION="$REGION -e ACCOUNT_ID="$ACCOUNT_ID" -e PRIVATE_IP="$MANAGER_IP" -e DOCKER_FOR_IAAS_VERSION="$DOCKER_FOR_IAAS_VERSION" -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker docker4x/guide-azure:"$DOCKER_FOR_IAAS_VERSION"
2037
echo default: "$LB_NAME" >> /var/lib/docker/swarm/elb.config
2138
echo "$LB_NAME" > /var/lib/docker/swarm/lb_name
39+
# l4controller container
2240
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/swarm:/var/lib/docker/swarm --name=editions_controller docker4x/l4controller-azure:"$DOCKER_FOR_IAAS_VERSION" run --ad_app_id="$APP_ID" --ad_app_secret="$APP_SECRET" --subscription_id="$SUB_ID" --resource_group="$GROUP_NAME" --log=4 --default_lb_name="$LB_NAME" --environment=AzurePublicCloud
23-
24-
25-
41+
# cloud registration container
2642
export IS_LEADER=$(docker node inspect self -f "{{ .ManagerStatus.Leader }}")
2743
if [ "$IS_LEADER" == "true" ]; then
2844
docker run --rm --name=cloud_registration -v /var/run/docker.sock:/var/run/docker.sock -e DOCKER_USER="$CLOUD_USER" -e DOCKER_PASS="$CLOUD_KEY" -e SWARM_NAME="$SWARM_NAME" -e INTERNAL_ENDPOINT="$LB_SSH_IP:2376" docker4x/cloud-azure:$DOCKER_FOR_IAAS_VERSION
29-
fi
45+
fi

0 commit comments

Comments
 (0)