Last active 5 hours ago

updatePortainer.sh Raw
1#!/bin/bash
2
3# Update Portainer container
4
5set -e
6
7CONTAINER_NAME="portainer"
8IMAGE="portainer/portainer-ce:latest"
9
10echo "=== Updating Portainer ==="
11
12# Check Docker
13if ! command -v docker >/dev/null 2>&1; then
14 echo "ERROR: Docker not found."
15 exit 1
16fi
17
18# Pull latest image
19echo "Pulling latest image..."
20docker pull "${IMAGE}"
21
22# Stop existing container if present
23if 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}"
29fi
30
31# Recreate container
32echo "Creating new container..."
33
34docker 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
44echo "Waiting for startup..."
45sleep 5
46
47# Verify
48if docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
49 echo "SUCCESS: Portainer updated successfully."
50 docker ps | grep "${CONTAINER_NAME}"
51else
52 echo "ERROR: Portainer container is not running."
53 docker logs "${CONTAINER_NAME}"
54 exit 1
55fi