lima-city: Webhosting, Domains und Cloud
0 Pluspunkte 0 Minuspunkte

Ich möchte in einem Bash Script einen Docker Container erstellen und danach 2 exec im Container aufrufen. 

docker run -dit -p 80:80 --name onlyoffice --restart=always \
  -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
  -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
  -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
  -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql \
  -e JWT_SECRET=my_jwt_secret \
  onlyoffice/documentserver

docker exec onlyoffice /var/www/onlyoffice/documentserver/npm/json -f /etc/onlyoffice/documentserver/local.json 'services.CoAuthoring.secret.session.string'

docker exec onlyoffice sudo supervisorctl start ds:example

Bevor ich docker exec aufrufe möchte ich aber einige Zeit warten. Gibt es eine Sleep Funktion  in Bash?

von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

Du kannst nach dem docker run Befehl einen sleep Befehl einfügen.

sleep 20 # wartet 20 Sekunden

Noch besser wäre es, in einer Schleife zu warten bis der Container tatsächlich hochgefahren ist.

until [ "$(docker inspect -f '{{.State.Running}}' onlyoffice)" == "true" ]; do
    echo "Container startet noch..."
    sleep 2
done
von (624 Punkte)  
Diese Community basiert auf dem Prinzip der Selbstregulierung. Beiträge werden von Nutzern erstellt, bewertet und verbessert – ganz ohne zentrale Moderation.

Wer hilfreiche Fragen stellt oder gute Antworten gibt, sammelt Punkte. Mit steigender Punktzahl erhalten Mitglieder automatisch mehr Rechte, zum Beispiel

  • Kommentare verfassen
  • Fragen und Antworten bewerten
  • Themen von Fragen bearbeiten
  • Fragen, Antworten und Kommentare bearbeiten
  • Inhalte ausblenden

So entsteht eine Plattform, auf der sich Qualität durchsetzt – getragen von einer engagierten Gemeinschaft.

2.3k Fragen

2.8k Antworten

261 Kommentare

13 Nutzer