Ich werde über "Dockerize" schreiben, was praktisch ist, wenn Sie bei Verwendung von "Docker-Compose" auf eine DB-Verbindung warten möchten.
Soweit ich unten sehen kann, scheinen "wait-for-it" und "dockerize" gültig zu sein. Steuern der Startreihenfolge in Compose - Docker-docs-ja 17.06 Document
Warten Sie, bis MySQL in Docker Compose-Qiita gestartet wird Wie man wartet, bis MySQL mit Docker-Compose beginnt (Einführung von 2 Typen) --Qiita
Dockerize
GitHub - jwilder/dockerize: Utility to simplify running applications in docker containers
Ändern Sie dockerfile
und docker-compose.yaml
.
ENV DOCKERIZE_VERSION v0.6.0
RUN apk add --no-cache openssl \
&& wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
&& tar -C /usr/local/bin -xzvf dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
&& rm dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz
Definieren Sie den Befehl dockerize
mit docker-compose
.
Mit dem Befehl "dockerize -wait tcp: // db: 5432" können Sie auf den Start der abhängigen Anwendung warten.
entrypoint:
- dockerize
- -timeout
- 60s
- -wait
- tcp://mysql:3306
command: ./main #Lauf weiter
Warten Sie, bis andere Container Dockerize-Qiita verwenden
Recommended Posts