Search code examples
ruby-on-railsazuredockersidekiq

How do I run Sidekiq on Azure?


I have a Ruby on Rails application with Sidekiq. I run it on Heroku for years with web dynos for the web server and worker dynos for Sidekiq (https://devcenter.heroku.com/articles/background-jobs-queueing).

I managed to make the web server work on Azure, quite simply.

I now have trouble trying to make Sidekiq work on Azure. The concept of workers (as defined by Heroku) does not seem to exist on Azure.

Here is what I've done so far:

  • I tried to configure a web app for container with the following start command: bundle exec sidekiq -C config/sidekiq.yml

  • I tried to configure a web app with docker-compose:

    services:
      web:
        image: "myregistry.azurecr.io/myimage:latest"
        ports:
          - 80:80
      sidekiq:
        image: "myregistry.azurecr.io/myimage:latest"
        command: bundle exec sidekiq -C config/sidekiq.yml
    
    
  • with docker compose, both services (web + sidekiq) start correctly, but after a few minutes, I have the following error: ERROR - multi-container unit was not started successfully without more details.

  • I finally tried to configure a container instance: https://azure.microsoft.com/fr-fr/services/container-instances/

    • I have no idea how to execute sidekiq once the container is up

Does anyone has managed to make sidekiq work on Azure? Thank you!


Solution

  • https://github.com/arturictus/sidekiq_alive did the job to fix the Container didn't respond to HTTP pings on port: XXXX issue!