I am getting this error while running my rails app with docker and docker-compose Error connecting to Redis on 127.0.0.1:6379 (Errno::ECONNREFUSED)
Please find my Docker file
# Copy the Gemfile as well as the Gemfile.lock and install # the RubyGems. This is a separate step so the dependencies # will be cached unless changes to one of those two files # are made. COPY Gemfile Gemfile.lock ./ RUN gem install bundler && bundle install --jobs 20 --retry 5 # Copy the main application. COPY . ./app # Expose port 3000 to the Docker host, so we can access it # from the outside. EXPOSE 3000 # The main command to run when the container starts. Also # tell the Rails dev server to bind to all interfaces by # default. CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]
Please find my docker-compose.yml file
version: "2" services: redis: image: redis command: redis-server ports: - "6379:6379" postgres: image: postgres:9.4 ports: - "5432" app: build: . command: rails server -p 3000 -b '0.0.0.0' volumes: - .:/app ports: - "3000:3000" links: - postgres - redis - sidekiq sidekiq: build: . command: bundle exec sidekiq depends_on: - redis volumes: - .:/app env_file: - .env
Thanks in Advance!
I use a docker-compose and i add in
Links are not required to enable services to communicate - by default, any service can reach any other service at that service’s name.
According to your docker-compose.yaml file you can access you redis container on 127.0.0.1:6379 only from host machine.
Containers communicate with each other in their network, so you can access your redis container on
redis:6379 from rails app container.