Last active 7 hours ago

gioxx's Avatar gioxx revised this gist 7 hours ago. Go to revision

1 file changed, 55 insertions

updatePortainer.sh(file created)

@@ -0,0 +1,55 @@
1 + #!/bin/bash
2 +
3 + # Update Portainer container
4 +
5 + set -e
6 +
7 + CONTAINER_NAME="portainer"
8 + IMAGE="portainer/portainer-ce:latest"
9 +
10 + echo "=== Updating Portainer ==="
11 +
12 + # Check Docker
13 + if ! command -v docker >/dev/null 2>&1; then
14 + echo "ERROR: Docker not found."
15 + exit 1
16 + fi
17 +
18 + # Pull latest image
19 + echo "Pulling latest image..."
20 + docker pull "${IMAGE}"
21 +
22 + # Stop existing container if present
23 + if docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
24 + echo "Stopping existing container..."
25 + docker stop "${CONTAINER_NAME}"
26 +
27 + echo "Removing existing container..."
28 + docker rm "${CONTAINER_NAME}"
29 + fi
30 +
31 + # Recreate container
32 + echo "Creating new container..."
33 +
34 + docker run -d \
35 + --name "${CONTAINER_NAME}" \
36 + --restart=always \
37 + -p 9002:9000 \
38 + -p 9442:9443 \
39 + -v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro \
40 + -v /run/docker.sock:/var/run/docker.sock \
41 + -v portainer_data:/data \
42 + "${IMAGE}"
43 +
44 + echo "Waiting for startup..."
45 + sleep 5
46 +
47 + # Verify
48 + if docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
49 + echo "SUCCESS: Portainer updated successfully."
50 + docker ps | grep "${CONTAINER_NAME}"
51 + else
52 + echo "ERROR: Portainer container is not running."
53 + docker logs "${CONTAINER_NAME}"
54 + exit 1
55 + fi
Newer Older