/ / Ansible und Docker: Lokal erstellte Images werden abgerufen und verursachen Fehler - Linux, Unix, Docker, Ansible

Ansible und Docker: lokal Build Image wird gezogen und verursacht Fehler - Linux, Unix, Docker, ansible

Ich verwende Ansible, um meinen Server bereitzustellenalles, was benötigt wird, um meine Website zum Laufen zu bringen. Ziel ist es, ein Basissystem zu installieren und Docker-Container bereitzustellen, auf denen Apps ausgeführt werden (im Moment ist es nur eine App).

Das Problem, dem ich gegenüberstehe, ist, dass mein Andockbildwird nicht bei dockerhub oder etwas anderem gehostet. Stattdessen wird es von einer Ansible-Task erstellt. Wenn ich jedoch versuche, das erstellte Image auszuführen, versucht Ansible, es abzurufen (was nicht möglich ist) und stirbt dann ab.

So sieht der Playbook-Bereich aus:

- name: check or build image
docker_image:
path=/srv/svenv.nl-docker
name="svenv/svenv.nl"
state=build

- name: start svenv/svenv.nl container
docker:
name: svenv.nl
volumes:
- /srv/svenv.nl-docker/data/var/lib/mysql/:/var/lib/mysql/
- /srv/svenv.nl-docker/data/svenv.nl/svenv/media:/svenv.nl/svenv/media
ports:
- 80:80
- 3306:3306
image: svenv/svenv.nl

Wenn ich dies ausführe, zeigt ein Fehler an, dass die Datei svenv / svenv.nl aus dem Repository abgerufen wird und nicht vorhanden ist, sodass sie abstürzt:

failed: [vps02.svenv.nl] => {"changes": ["{"status":"Pulling repository svenv/svenv.nl"}rn", "{"errorDetail":{"message":"Error: image svenv/svenv.nl:latest not found"},"error":"Error: image svenv/svenv.nl:latest not found"}rn"], "failed": true, "status": ""}
msg: Unrecognized status from pull.

FATAL: all hosts have already failed -- aborting

Meine Frage ist:

Wie kann ich

  • Erstellen Sie einen lokalen Docker
  • Starten Sie es dann als Container, ohne es zu ziehen

Antworten:

6 für die Antwort № 1

Sie treffen diesen Fehler:

Ansible versucht, einen Container zu erstellen, aber die Erstellung schlägt fehl mit:

docker.errors.InvalidVersion: mem_limit has been moved to host_config in API version 1.19

Leider gibt es alles except: das versteckt diesen Fehler. Das Ergebnis ist, dass ansible, anstatt mit der obigen Meldung zu scheitern, davon ausgeht, dass das Bild einfach lokal fehlt, und versucht, es abzurufen.

Sie können dies umgehen, indem Sie festlegen docker_api_version zu etwas früher als 1.19:

- name: start svenv/svenv.nl container
docker:
name: svenv.nl
ports:
- 80:80
- 3306:3306
image: svenv/svenv.nl
docker_api_version: 1.18