【问题标题】:Host sidekiq container along side rails puma container in docker swarm在 docker swarm 中沿侧轨 puma 容器托管 sidekiq 容器
【发布时间】:2021-06-22 14:03:01
【问题描述】:

我有一个 docker swarm 集群,将我的 rails 应用和 sidekiq 作为单独的容器托管。

API 应用程序将传入的上传文件写入 public 文件夹,并将路径发送给 sidekiq worker 以上传到 s3。我为此使用了 docker 卷映射。

由于这种依赖关系,我需要在运行我的 API 应用程序的所有节点中运行一个 sidekiq 容器。

当 swarm 在新节点部署 API 容器时,有什么方法可以告诉 swarm 部署 sidekiq 容器?

或者,是否有任何解决方法可以解决我的问题而无需首先依赖卷映射?

我的 docker-stack.yml

version: "3.9"
services:
  app:
    image: rails_app
    command: bundle exec rails s -e production
    ports:
      - 8000:8000
    volumes:
      - app-assets:/app/public/assets
    networks:
      - my-network
    deploy:
      replicas: 6
      placement:
        constraints:
          - "node.role==worker"
      update_config:
        parallelism: 2
        delay: 10s
      restart_policy:
        condition: on-failure
        delay: 5s
  worker:
    image: rails_app
    command: bundle exec sidekiq -c 2 -e production
    networks:
      - my-network
    volumes:
      - app-assets:/app/public/assets
    deploy:
      replicas: 6
      placement:
        constraints:
          - "node.role==worker"
      restart_policy:
        condition: on-failure
        delay: 5s

networks:
  my-network:

volumes:
  app-assets:

【问题讨论】:

    标签: ruby-on-rails docker docker-swarm sidekiq


    【解决方案1】:

    即使在谷歌上搜索了 3 天后,我也无法使用 Docker swarm 找到任何此类配置。但我能够通过使用 NFS 进行卷映射来解决这个瓶颈。

    有关 NFS 的更多信息:https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on-ubuntu-16-04

    【讨论】:

      猜你喜欢
      • 2020-12-08
      • 2018-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 2021-10-07
      • 2017-12-07
      • 1970-01-01
      相关资源
      最近更新 更多