Chcę uruchomić skrypt, tuż po uruchomieniudoker-komponować yml uruchomienie skryptu po up
`docker-compose up -d`
Tu jest mój urywek docker-compose.yml
. Pozostałe ustawienia serwera mysql, Redis ... itd .... ale nie powodują żadnych problemów
web:
image: nginx
container_name: web-project
volumes:
- ./code:/srv
working_dir: /srv/myweb
extra_hosts:
- "myweb.local:127.0.0.1"
ports:
- 8081:80
# tty: true
command: sh /srv/scripts/post-run-web.sh
Więc kiedy biegnę docker-compose up -d
oder docker-compose up
on wszystkie przystanki. (pojemniki nie działają). Chociaż mój skrypt powłoki jest prosty (działający echos ... lub phpunit). Oto mój skrypt.
#!/bin/bash
echo running post install scripts for web..;
cd /srv/myweb
npm install
composer self-update
composer update
I to jest błąd, który dostaję. To tak, jakby serwer (nginx) jeszcze nie działał. Również jeśli łączę się z serwerem za pomocą exec bash, a ja sprawdzam procesy. Nie widzę działającego nginx (jeszcze).
web_1 | You are already using composer version 7a9eb02190d334513e99a479510f87eed18cf958.
web_1 | Loading composer repositories with package information
web_1 | Updating dependencies (including require-dev)
web_1 | Generating autoload files
web-project exited with code 0
Gracefully stopping... (press Ctrl+C again to force)
Stopping mysql-project... done
Stopping rabbitmq-project... done
Stopping redis-project... done
dlaczego więc wychodzi, chociaż skrypt jest poprawny pod względem składni? jak mogę go uruchomić poprawnie? (co ja robię, konfiguruję źle!)
Twoja próba sprawienia, że rzeczy zostaną automatycznie uruchomione po zakończeniu lub ręcznie? możesz użyć 'docker exec $ (docker-compose ps -q web) some_command', aby uruchomić rzeczy w już działającym kontenerze. –