Synology Container Manager, Portainer erstellen eines Containers nicht möglich.

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
443
Punkte für Reaktionen
17
Punkte
18
Ich bin gerade dabei Odoo inkl DB zu installieren jedoch erhalte ich diesen Fehler:

ErrorDeployment errorfailed to deploy a stack: Container Odoo-DB Creating Container Odoo-DB Created Container Odoo Creating Container Odoo Created Container Odoo-DB Starting Container Odoo-DB Started Container Odoo-DB Waiting Container Odoo-DB Error dependency failed to start: container Odoo-DB is unhealthy

YAML:
YAML:
version: "3.9"
services:
db:
image: postgres
container_name: Odoo-DB
hostname: odoo-db
mem_limit: 512m
cpu_shares: 768
security_opt:
- no-new-privileges:true
user: 1026:100
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "postgres", "-U", "odoouser"]
timeout: 45s
interval: 10s
retries: 10
volumes:
- /volume2/Docker2/odoo/db:/var/lib/postgresql/data:rw
environment:
POSTGRES_DB: postgres
POSTGRES_USER: odoouser
POSTGRES_PASSWORD: XXXXXXX
restart: on-failure:5
networks:
Docker:
ipv4_address: 10.98.4.105

odoo:
image: odoo:17
container_name: Odoo
hostname: odoo
mem_limit: 1g
cpu_shares: 768
security_opt:
- no-new-privileges:true
user: 1026:100
healthcheck:
test: curl -f http://localhost:8069/ || exit 1
ports:
- 8069:8069
volumes:
- /volume2/Docker2/odoo/web-data:/var/lib/odoo:rw
- /volume2/Docker2/odoo/addons:/mnt/extra-addons:rw
- /volume2/Docker2/odoo/cache:/.cache/pip:rw
- /volume2/Docker2/odoo/local:/.local:rw
- /volume2/Docker2/odoo/config:/etc/odoo:rw
environment:
HOST: odoo-db
PORT: 5432
USER: odoouser
PASSWORD: XXXXXXX
restart: on-failure:5
depends_on:
db:
condition: service_healthy
networks:
Docker:
ipv4_address: 10.98.4.104

networks:
Docker:
external: true

Passwort wurde absichtlich zensiert.
Beim server handelt es sich um eine Synology DS 224+ mit 2 nic's Management lan und Docker lan
Die beiden container sind im Docker Lan. muss ich noch irgend wo etwas konfigurieren das die Container miteinander kommunizieren können ?
Netzwerk ist offen ist kein Security Vlan nur zur Segmentierung.

Die besagten ip Ranges habe ich auf einer Whitelist also in der Theorie müssen die Container untereinander komunizeiren können. Komischer Weise kann ich von der DS den Portainer nicht an pingen. jedoch von meinem Mac aus ohne Problem.

Hier noch die Netzwerk Konfiguration des "Docker" Netzwerkes:
YAML:
  "Name": "Docker",
        "Id": "1a971b946331a942a6c75f67660a88c65bbc70ab02e2ca2918329f340e7f2a2a",
        "Created": "2024-02-29T21:45:00.994178897+01:00",
        "Scope": "local",
        "Driver": "macvlan",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "10.98.4.0/24",
                    "Gateway": "10.98.4.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "687e73387ec9329110ac0c670ddb5db8a1f1f27e61277edaaa2dc1b8e88bdca3": {
                "Name": "portainer",
                "EndpointID": "2a7931d9b7d2a6de546862fe0a936829f1c1501c8d131baeab165d9a8d3312dd",
                "MacAddress": "02:42:0a:62:04:67",
                "IPv4Address": "10.98.4.103/24",
                "IPv6Address": ""
            }
        },
        "Options": {
            "parent": "eth2"
        },
        "Labels": {}
    }

Besten dank für eure Hillfe.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.623
Punkte für Reaktionen
761
Punkte
154
Komischer Weise kann ich von der DS den Portainer nicht an pingen. jedoch von meinem Mac aus ohne Problem.
Ja das ist normales Verhalten bei MACVLAN. Host und Container können nicht ohne weiteres miteinander kommunizieren. Du musst erst eine Bridge erstellen (bei jedem Booten). Müssen die Container im MACVLAN laufen? Ich würde immer wenn es geht auf MACVLAN verzichten. Ich persönlich sehe keinen Vorteil davon. Hier gibt es halt User die sehen als Vorteil, weil dann jeder Container seine eigene IP hat und man sich keine Ports merken muss.
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.623
Punkte für Reaktionen
761
Punkte
154
Wo ist denn der Vorteil, ob ich mir eine IP merken muss oder nur einen Port. Am leichtesten wäre es doch wenn man einen Reverse Proxy einsetzt. Dann muss man sich nur noch Domains merken.
Mit MACVLAN holst du dir halt andere Probleme rein die du ohne gar nicht erst hättest.
 
  • Like
Reaktionen: ctrlaltdelete

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.260
Punkte für Reaktionen
4.958
Punkte
519

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
443
Punkte für Reaktionen
17
Punkte
18
Hmm ich zerbrich mir gerade den Kopf wie das mit UnRaid umgesetzt wurde da reichte es einen check zu setzten und die Container konnten miteinander komunizieren :unsure:
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.623
Punkte für Reaktionen
761
Punkte
154
Naja da werden die wahrscheinlich auch so eine Bridge automatisch erstellen. Anders können die es auch nicht umsetzen. Es ist technisch nicht anders möglich. Es ist laut Definition genau das, wie sich ein MACVLAN verhalten soll bzw. wie es umgesetzt ist. Host und Container können sich nicht sehen. Mit dieser Bridge umgeht man genau das, was der Kernel eigentlich verhindert.
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
443
Punkte für Reaktionen
17
Punkte
18
Ich habe keine Ahnung warum dies nicht funktioniert:
Code:
==================================================>] 585B/585B dc68b296b826 Pull complete odoo Pulled network Docker declared as external, but could not be found

das Netzwerk docker ist vorhanden:

YAML:
sh-4.4# docker network inspect docker
[
    {
        "Name": "docker",
        "Id": "a24a299c948e08776161b7f5d8125641e22bbae67ea898c3477ef0b546a15c4c",
        "Created": "2024-03-05T15:43:04.768309432+01:00",
        "Scope": "local",
        "Driver": "macvlan",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "10.98.4.0/23",
                    "Gateway": "10.98.4.1",
                    "AuxiliaryAddresses": {
                        "host": "10.98.5.253"
                    }
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": "deocker-Temp"
        },
        "ConfigOnly": false,
        "Containers": {},
        "Options": {
            "parent": "eth2"
        },
        "Labels": {}
    }
]
sh-4.4#
das Skript habe ich ausgeführt:

Bash:
#!/bin/bash
while ! /usr/local/bin/docker info >/dev/null 2>&1;
do
    sleep 5s
done

ip link add docker2 link eth2 type macvlan mode bridge
ip addr add 10.98.5.253/32 dev docker
ip link set docker2 up
ip route add 10.98.4.0/23 dev docker
Die ip 10.98.5.253 ist ping bar und auch auf dem router zu finden.

Wo klemmt es hier noch ?
 

ctrlaltdelete

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
10.168
Punkte für Reaktionen
3.687
Punkte
414

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.623
Punkte für Reaktionen
761
Punkte
154
Er will das aber als MACVLAN laufen lassen. Hab ja auch schon gesagt, dass er es per Reverse Proxy laufen lassen könnte und sich das komplette MACVLAN Zeug sparen könnte. Da bräuchte er ja nicht mal eine Anleitung für. Er müsste nur den MACVLAN kram entfernen.
 
  • Like
Reaktionen: ctrlaltdelete

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.264
Punkte für Reaktionen
923
Punkte
174
Hmm ich zerbrich mir gerade den Kopf wie das mit UnRaid umgesetzt wurde da reichte es einen check zu setzten und die Container konnten miteinander komunizieren :unsure:
Setzt Unraid nicht auf LXD-Container? LXD ist näher an einer "echten" Virtualisierung ran. Denkbar, dass das anders funktioniert.
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
443
Punkte für Reaktionen
17
Punkte
18
@Ulfhednir Nein da ist docker mit implementiert qnap setzt auf docker und LXC ansonsten ist mir LXC nur bei Proxmox ein begriff.
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
443
Punkte für Reaktionen
17
Punkte
18
Unterschied ist die Groß- und Kleinschreibung. Probier es doch mal klein zu schreiben.
habe ich angepasst:
YAML:
version: "3.9"
services:
  db:
    image: postgres
    container_name: Odoo-DB
    hostname: odoo-db
    mem_limit: 512m
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    user: 1026:100
    healthcheck:
      test: ["CMD", "pg_isready", "-q", "-d", "postgres", "-U", "odoouser"]
      timeout: 45s
      interval: 10s
      retries: 10
    volumes:
      - /volume2/Docker2/odoo/db:/var/lib/postgresql/data:rw
    environment:
      POSTGRES_DB: postgres
      POSTGRES_USER: odoouser
      POSTGRES_PASSWORD: odoo4pass
    restart: on-failure:5
    networks:
      docker:
        ipv4_address: 10.98.4.105

  odoo:
    image: odoo:17
    container_name: Odoo
    hostname: odoo
    mem_limit: 1g
    cpu_shares: 768
    security_opt:
      - no-new-privileges:true
    user: 1026:100
    healthcheck:
      test: curl -f http://localhost:8069/ || exit 1
    ports:
      - 8069:8069
    volumes:
      - /volume2/Docker2/odoo/web-data:/var/lib/odoo:rw
      - /volume2/Docker2/odoo/addons:/mnt/extra-addons:rw
      - /volume2/Docker2/odoo/cache:/.cache/pip:rw
      - /volume2/Docker2/odoo/local:/.local:rw
      - /volume2/Docker2/odoo/config:/etc/odoo:rw
    environment:
      HOST: odoo-db
      PORT: 5432
      USER: odoouser
      PASSWORD: odoo4pass
    restart: on-failure:5
    depends_on:
      db:
        condition: service_healthy
    networks:
      docker:
        ipv4_address: 10.98.4.106
        
networks:
  docker:
    external: true

ua auch die IP bei meinem Ping test stellte sich heraus das die xx.104 bereits vergeben war :eek:
Die DB ist auch für eine kurze Zeit online somit ist das Routing und Netzwerk OK
Code:
Request timeout for icmp_seq 13
64 bytes from 10.98.4.105: icmp_seq=14 ttl=63 time=0.531 ms
Request timeout for icmp_seq 15

Gibt es ausführlichere logs im Portainer den das
"
Deployment errorfailed to deploy a stack: Container Odoo-DB Creating Container Odoo-DB Created Container Odoo Creating Container Odoo Created Container Odoo-DB Starting Container Odoo-DB Started Container Odoo-DB Waiting Container Odoo-DB Error dependency failed to start: container Odoo-DB is unhealthy
Bringt mich nicht weiter...
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
443
Punkte für Reaktionen
17
Punkte
18
Das ist das einzige was Portainer stehen lässt der löscht alles wieder:
ich habe nur die events mehr nicht:
1709656157448.png
 
Zuletzt bearbeitet von einem Moderator:

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.623
Punkte für Reaktionen
761
Punkte
154
Dann müsstest du raus bekommen wieso die DB nicht startet. Musst mal gucken, ob du es starten kannst und direkt in die Logs der DB wechseln oder es über docker compose probieren. Mit docker-compose up siehst du ja alle Ausgaben vom Stack. Musst aber natürlich dann den Stack außerhalb von Portainer anlegen.
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
443
Punkte für Reaktionen
17
Punkte
18

Funktioniert auch nicht, Volumen angepasst Ordner erstellt auch Da motzt er rum:
dc68b296b826 Pull complete odoo Pulled Container Odoo-DB Creating Container Odoo-DB Created Container Odoo Creating Container Odoo Created Container Odoo-DB Starting Container Odoo-DB Started Container Odoo-DB Waiting Container Odoo-DB Error dependency failed to start: container Odoo-DB is unhealthy

keine ahnung wareum der nicht geht
 

Toby-ch

Benutzer
Mitglied seit
02. Okt 2013
Beiträge
443
Punkte für Reaktionen
17
Punkte
18
So "ich" habe die Lösung, das löschen dieser Zeile:
user: 1026:100
hat geholfen.
Wo habe ich das her ich bin bei Marius auf dem discord. nun läuft alles.
Ein Discord Server für dieses Forum wäre auch einmal etwas :)
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat