updatePortainer.sh
· 1.2 KiB · Bash
Raw
#!/bin/bash
# Update Portainer container
set -e
CONTAINER_NAME="portainer"
IMAGE="portainer/portainer-ce:latest"
echo "=== Updating Portainer ==="
# Check Docker
if ! command -v docker >/dev/null 2>&1; then
echo "ERROR: Docker not found."
exit 1
fi
# Pull latest image
echo "Pulling latest image..."
docker pull "${IMAGE}"
# Stop existing container if present
if docker ps -a --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
echo "Stopping existing container..."
docker stop "${CONTAINER_NAME}"
echo "Removing existing container..."
docker rm "${CONTAINER_NAME}"
fi
# Recreate container
echo "Creating new container..."
docker run -d \
--name "${CONTAINER_NAME}" \
--restart=always \
-p 9002:9000 \
-p 9442:9443 \
-v /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro \
-v /run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
"${IMAGE}"
echo "Waiting for startup..."
sleep 5
# Verify
if docker ps --format '{{.Names}}' | grep -q "^${CONTAINER_NAME}$"; then
echo "SUCCESS: Portainer updated successfully."
docker ps | grep "${CONTAINER_NAME}"
else
echo "ERROR: Portainer container is not running."
docker logs "${CONTAINER_NAME}"
exit 1
fi
| 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 |