diff --git a/app/portainer/views/endpoints/edit/endpoint.html b/app/portainer/views/endpoints/edit/endpoint.html
index 7a335035d..b17b0ca8c 100644
--- a/app/portainer/views/endpoints/edit/endpoint.html
+++ b/app/portainer/views/endpoints/edit/endpoint.html
@@ -36,20 +36,10 @@
-
- docker run -d -v /var/run/docker.sock:/var/run/docker.sock \ -v /var/lib/docker/volumes:/var/lib/docker/volumes \ -v /:/host \ --restart always \ -e EDGE=1 \ -e
- EDGE_ID={{ randomEdgeID }} \ -e EDGE_KEY={{ endpoint.EdgeKey }} \ -e CAP_HOST_MANAGEMENT=1 \ -v portainer_agent_data:/data \ --name portainer_edge_agent \
- portainer/agent
-
+ {{dockerCommands.standalone}}
-
- docker network create \ --driver overlay \ portainer_agent_network; docker service create \ --name portainer_edge_agent \ --network portainer_agent_network \ -e
- AGENT_CLUSTER_ADDR=tasks.portainer_edge_agent \ -e EDGE=1 \ -e EDGE_ID={{ randomEdgeID }} \ -e EDGE_KEY={{ endpoint.EdgeKey }} \ -e CAP_HOST_MANAGEMENT=1 \ --mode
- global \ --constraint 'node.platform.os == linux' \ --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \ --mount
- type=bind,src=//var/lib/docker/volumes,dst=/var/lib/docker/volumes \ --mount type=bind,src=//,dst=/host \ --mount type=volume,src=portainer_agent_data,dst=/data \
- portainer/agent
-
+ {{dockerCommands.swarm}}
diff --git a/app/portainer/views/endpoints/edit/endpointController.js b/app/portainer/views/endpoints/edit/endpointController.js
index ac24a3ed8..0ff7590f1 100644
--- a/app/portainer/views/endpoints/edit/endpointController.js
+++ b/app/portainer/views/endpoints/edit/endpointController.js
@@ -152,6 +152,10 @@ angular
if (endpoint.Type === 4) {
$scope.edgeKeyDetails = decodeEdgeKey(endpoint.EdgeKey);
$scope.randomEdgeID = uuidv4();
+ $scope.dockerCommands = {
+ standalone: buildStandaloneCommand($scope.randomEdgeID, endpoint.EdgeKey),
+ swarm: buildSwarmCommand($scope.randomEdgeID, endpoint.EdgeKey),
+ };
}
$scope.endpoint = endpoint;
$scope.groups = data.groups;
@@ -162,5 +166,41 @@ angular
});
}
+ function buildStandaloneCommand(edgeId, edgeKey) {
+ return `docker run -d -v /var/run/docker.sock:/var/run/docker.sock \\
+ -v /var/lib/docker/volumes:/var/lib/docker/volumes \\
+ -v /:/host \\
+ --restart always \\
+ -e EDGE=1 \\
+ -e EDGE_ID=${edgeId} \\
+ -e EDGE_KEY=${edgeKey} \\
+ -e CAP_HOST_MANAGEMENT=1 \\
+ -v portainer_agent_data:/data \\
+ --name portainer_edge_agent \\
+ portainer/agent`;
+ }
+
+ function buildSwarmCommand(edgeId, edgeKey) {
+ return `docker network create \\
+ --driver overlay \\
+ portainer_agent_network;
+
+docker service create \\
+ --name portainer_edge_agent \\
+ --network portainer_agent_network \\
+ -e AGENT_CLUSTER_ADDR=tasks.portainer_edge_agent \\
+ -e EDGE=1 \\
+ -e EDGE_ID=${edgeId} \\
+ -e EDGE_KEY=${edgeKey} \\
+ -e CAP_HOST_MANAGEMENT=1 \\
+ --mode global \\
+ --constraint 'node.platform.os == linux' \\
+ --mount type=bind,src=//var/run/docker.sock,dst=/var/run/docker.sock \\
+ --mount type=bind,src=//var/lib/docker/volumes,dst=/var/lib/docker/volumes \\
+ --mount type=bind,src=//,dst=/host \\
+ --mount type=volume,src=portainer_agent_data,dst=/data \\
+ portainer/agent`;
+ }
+
initView();
});