2017-02-02 13 views
2

Я хочу сделать дополнительный контейнер для работников сельдерея. Так структура должна быть следующей:Докер. Сельдерей и код в разных контейнерах

celery_container - Celery 
code_container - RabbitMQ, DB, code, everything else 

Я знаю, как организовать сеть, поэтому сельдерей подключен к Кролику в другом контейнере.

Но я не могу понять, должен ли я хранить свой код в обоих контейнерах?

Мои задачи выполняются как с работниками сельдерея, так и синхронно. Итак, теперь я вижу только вариант запускать оба контейнера с параметром --volume. Например:

docker run \ 
-tid \ 
-v $(pwd):/home \ 
--name code_container \ 
code_container 

docker run \ 
-tid \ 
-v $(pwd):/home \ 
--name celery_container \ 
celery_container 

ответ

1

Как я понял, лучший способ - сохранить код в обоих контейнерах, с кодом и с сельдереем.

Полезно построить smth как базовое изображение где будут почти все зависимости и код приложения. Тогда вы сможете построить контейнер с кодом и сельдереем из этого контейнера. Поэтому, если вам нужно будет создать любой другой контейнер с кодом внутри, просто используйте это базовое изображение и обновите файл Docker с помощью соответствующих процессов.

0

Вы можете легко использовать докеры для компоновки контейнеров. Создание code_container и дать его в качестве ссылки для сельдерея в Докер-композе, как показано

celery: 
    ports: 
    - ":" 
    links: 
    - code_container 

теперь все, что вам нужно будет доступна из контейнера сельдерея по вызывающему code_container базы данных или: порт

+0

Я не хочу использовать docker-compose. Вместо этого я использую «сеть сельдерея». – Snobby