• Docker
  • Besoin d'explication et d'aide

Bonjour,

Tu as une erreur de syntaxe dans ton fichier docker-compose, je dirai.

les mots "portainer" et "homeassistant" doivent avoir deux espaces par rapport au mot "services"

version: "2"
services:

  portainer:
    image: portainer/portainer
    container_name: portainer
    restart: always
    command: --templates http://templates/templates.json
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ${USERDIR}/docker/portainer/data:/data
    ports:
      -"9000:9000"
    environment:
      - TZ=${TZ}

  homeassistant:
    container_name: homeassistant
    restart: always
    image: homeassistant/home-assistant
    devices:
      - /dev/ttyUSB0:/dev/ttyUSB0
      - /dev/ttyUSB1:/dev/ttyUSB1
      - /dev/ttyACM0:/dev/ttyACM0
    volumes:
      - ${USERDIR}/docker/homeassistant:/config
      - /etc/localtime:/etc/localtime:ro
      - ${USERDIR}/docker/certs:/certs
    network_mode: host
    privileged: true
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}

Je vais dans le sens de @triptixx : c'est une erreur d'indentation.

Dans ces fichiers, un espace en trop ou en moins ne pardonne pas 😉
Vérifies bien que tous les éléments sont bien alignés et ont le même nombre d'espaces.

Chez moi ça fonctionne avec le fichier suivant:
J'ai corrigé l'indentation et viré les guillemets autours du port de portainer qui étaient inutiles et provoquaient une erreur car il manquait un espace avant.

version: "2"

services:
  portainer:
    image: portainer/portainer
    container_name: portainer
    restart: always
    command: --templates http://templates/templates.json
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /data/docker/portainer/data:/data
    ports:
      - 9000:9000
    environment:
      - TZ=${TZ}

  homeassistant:
    container_name: homeassistant
    restart: always
    image: homeassistant/home-assistant
    devices:
      - /dev/ttyUSB0:/dev/ttyUSB0
      - /dev/ttyUSB1:/dev/ttyUSB1
      - /dev/ttyACM0:/dev/ttyACM0
    volumes:
      - ${USERDIR}/docker/homeassistant:/config
      - /etc/localtime:/etc/localtime:ro
      - ${USERDIR}/docker/certs:/certs
    network_mode: host
    privileged: true
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}

Par contre, tu as un fichier .env à côté ? Si non, penses bien à remplacer les variables !

En gros, rappelles toi de 2-4-6 :
- 2 espaces avant le container (ici les lignes "portainer:" et "homeassistant:")
- 4 espaces pour le type des options ("image:", "container_name:", "restart:" ...)
- 6 espaces pour la valeur des options quand il y en as plus d'1 ("6 espaces", "-" "1 espace" "valeur de l'option")

Attention : des espaces, pas de tabulation. Certains éditeurs ont tendance à mettre une tabulation automatiquement dès que 4 espaces se suivent... Une plaie !

[inconnu] Si tu as 5 min, passe sur le Tchat mondédié, on va essayer de voir !

L'erreur docker disait qu'il existe déjà un container portant le nom "portainer". Du coup, il refuse la création du nouveau.

Fais un docker ps -a pour voir la liste des containers existants.

Pour ton histoire de root, je ne sais pas quoi te dire. N'ayant pas l'historique de tes commandes, dur de savoir où tu t'es plantée !
Mais si tu as perdu ton mot de passe root et que ton utilisateur n'est pas sudoer, ça parait compromis, en effet :x

Courage 😉

Docker demande un peu de temps pour comprendre, mais ensuite, c'est que du bonheur !

Répondre…