CI/CD using GitHub Actions for Rails and Docker

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • action-tmate

    Debug your GitHub Actions via SSH by using tmate to get access to the runner system itself.

  • Solution: Tip o' the hat to Daniela Baron here, there's a real life saver of tool call tmate.

  • redis-docker

    Docker Official Image packaging for Redis (by docker-library)

  • version: "3.7" services: postgres: image: "postgres:14-alpine" environment: POSTGRES_USER: "example" POSTGRES_PASSWORD: "example" ports: - "5432:5432" volumes: - "postgres:/var/lib/postgresql/data" redis: image: "redis:5-alpine" command: ["redis-server", "--requirepass", "yourpassword", "--appendonly", "yes"] healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 ports: - "6379:6379" volumes: - redis:/data sysctls: # https://github.com/docker-library/redis/issues/35 net.core.somaxconn: "511" sidekiq: depends_on: - "postgres" - "redis" - "elasticsearch" build: context: . args: environment: development image: you/yourapp command: bundle exec sidekiq -C config/sidekiq.yml.erb volumes: - ".:/app" # don"t mount tmp directory - /app/tmp env_file: - ".env" web: build: context: . args: environment: development image: you/yourapp command: bundle exec rspec depends_on: elasticsearch: condition: service_healthy postgres: condition: service_started redis: condition: service_healthy tty: true stdin_open: true ports: - "3000:3000" env_file: - ".env" elasticsearch: container_name: elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:7.4.2 environment: - discovery.type=single-node - cluster.name=docker-cluster - bootstrap.memory_lock=true - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" - "logger.org.elasticsearch=error" healthcheck: test: curl --fail elasticsearch:9200/_cat/health >/dev/null || exit 1 interval: 30s timeout: 10s retries: 5 ulimits: memlock: soft: -1 hard: -1 volumes: - esdata:/usr/share/elasticsearch/data ports: - 9200:9200 volumes: redis: postgres: esdata:

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Dokku

    A docker-powered PaaS that helps you build and manage the lifecycle of applications

  • [Manual] If all 10 workers reported tests passing (eye twitch), then I would trigger a deploy locally by running git push hostname:master where hostname is the git remote of my production server where Dokku is configured. This would build the image from scratch again, then deploy that image.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts