From 0112694b76ff5cc35e4656102fb88e23055f0505 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=A1nek?= Date: Mon, 2 Mar 2026 02:26:24 +0100 Subject: [PATCH] update: cross-platform run script --- README.md | 16 +++++++--------- run | 31 +++++++++++++++++++++++-------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index bd2e4fd..798d74e 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,9 @@ ## Portainer -- Webové rozhraní pro správu kontejnerů +- Webové rozhraní pro správu kontejnerů, obrazů, sítí i volumů +- Podpora Docker, Compose, Swarm i Kubernetes +- Persistentní úložiště dat (složka `portainer`) ## Požadavky @@ -33,7 +35,7 @@ V případě nutnosti upravte hodnoty dle svých nastavení > **Poznámka:** > > Přednastavenou doménu `dev.linuxak.com` můžete ponechat. Je plně funkční a směřuje -> na IP adresu `127.0.0.1` tedy na váš lokální počítač. +> na IP adresu `127.0.0.1` tedy na váš lokální počítač. Můžete ponechat i přednastavený název externí sítě. ### 2. Import CA do systému @@ -71,10 +73,10 @@ Import-Certificate -FilePath "traefik/certs/rootCA.pem" -CertStoreLocation Cert: ## Přístup ke službám -| Služba | URL | -|--------|-----------------------------------| +| Služba | URL | +|:------------------|:----------------------------------| | Traefik Dashboard | https://traefik.dev.linuxak.com | -| Portainer | https://portainer.dev.linuxak.com | +| Portainer | https://portainer.dev.linuxak.com | ## Struktura @@ -87,10 +89,6 @@ Stack/ └── portainer/ # Portainer data ``` -## Persistence - -Složka `portainer` je persistentním úložištěm pro službu Portainer a všechna data této služby zůstanou uložená i po vypnutí stacku, dokud je ručně nesmažete. - ## Připojení vaší služby do Traefiku Do vašeho `docker-compose.yml` přidejte Traefik labels: diff --git a/run b/run index 2e97f42..ae55ac6 100755 --- a/run +++ b/run @@ -1,9 +1,19 @@ -#!/bin/zsh +#!/bin/bash # Load parameters ACTION=$1 ENV_FILE=".env" +# Detect docker compose command (cross-platform compatibility) +if command -v docker-compose >/dev/null 2>&1; then + DOCKER_COMPOSE="docker-compose" +elif command -v docker >/dev/null 2>&1 && docker compose version >/dev/null 2>&1; then + DOCKER_COMPOSE="docker compose" +else + echo "Error: Neither docker-compose nor docker compose found!" + exit 1 +fi + # Check if .env file exists if [[ ! -f $ENV_FILE ]]; then echo "Error: $ENV_FILE file not found!" @@ -19,28 +29,33 @@ source $ENV_FILE case "$ACTION" in "up") - docker network create $EXTERNAL_NETWORK > /dev/null 2>&1 || true + # Create network if it doesn't exist (cross-platform) + if ! docker network ls | grep -q "${EXTERNAL_NETWORK}"; then + docker network create "${EXTERNAL_NETWORK}" >/dev/null 2>&1 || true + fi # Check HTTPS redirect setting if [[ "${FORCE_HTTPS_REDIRECT}" == "true" ]]; then MSG="Starting with HTTPS redirect enabled..." - docker compose -f docker-compose.yml -f docker-compose.https-redirect.yml up -d + ${DOCKER_COMPOSE} -f docker-compose.yml -f docker-compose.https-redirect.yml up -d else MSG="Starting without HTTPS redirect..." - docker compose up -d + ${DOCKER_COMPOSE} up -d fi - echo "\n${MSG}" + echo "" + echo "${MSG}" sleep 2 - echo "\nAvailable services:" + echo "" + echo "Available services:" echo "Traefik: https://traefik.${DEV_URL}" echo "Portainer: https://portainer.${DEV_URL}" ;; "restart") - docker compose restart + ${DOCKER_COMPOSE} restart ;; "down") - docker compose down + ${DOCKER_COMPOSE} down ;; *) echo "Usage: $0 [up|restart|down]"