2016-11-24 91 views
2

我需要在後臺運行rabbitMQ使用者 如何在Docker容器中運行他?如何在後臺運行Symfony命令Docker

+1

您可以將'docker exec ...'移動到容器上並手動運行該命令,或者可以運行單獨的容器來運行消費者的過程。後者是我的首選。 –

+0

請更多信息,它是你寫的dockerfile嗎?你想在同一個容器中運行這個命令嗎? etc ... – n00dl3

+0

碼頭配置與一個消費者的容器?或者在容器中運行新的後臺腳本的腳本? – Matteo

回答

1

Acording到泊塢窗的哲學你需要在單獨的容器中運行它。 你可以重複使用你的代碼,但它應該是非垃圾分離的容器/甚至可能與你運行網頁的不同。 您可以手動運行: docker run -v /path/to/app:/container-dir -w /container-dir your-container php bin/console your:command --env prod

或者你可以使用泊塢窗,撰寫或任何其他工具

附:不要忘記指定用戶。您需要使用具有相同UID的用戶運行它以運行Web實例以避免文件訪問問題

1

請注意,它高度依賴於你想要做什麼以及你的問題不清楚,但是如果你想在同一個容器和同一個shell中啓動命令,並且你對任何輸出都不感興趣。

然後,它只是像任何其他的Linux進程:

command > /dev/null 2>&1 & 

其中:

  • command是要運行
  • >/dev/null隨機命令發送每stdout輸出到黑洞
  • 2>&1使stderr
  • &在後臺運行

Eventualy使用nohup,如果你不希望命令關閉外殼/用戶註銷時被殺死你......

nohup command > /dev/null 2>&1 &