Home > Mobile >  How to connect to local network database from docker container
How to connect to local network database from docker container

Time:02-24

I'm trying to connect to an express database on sql server accesible throughout 192.168.0.130:1433 on local network from Docker Django container.

I'm on a Mac and from local host i have ping

$ ping 192.168.0.130 64 bytes from 192.168.0.130: icmp_seq=0 ttl=128 time=5.796 ms 64 bytes from 192.168.0.130: icmp_seq=1 ttl=128 time=2.234 ms

But inside docker container get timeout error.

docker-compose.yml:

version: '3.7'
services:
  ...
  django:
    container_name: djangonoguero_django_ctnr
    build:
      context: .
      dockerfile: Dockerfile-django
    restart: unless-stopped
    env_file: ./project/project/settings/.env
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - ./project:/djangonoguero
    depends_on:
     - postgres
    ports:
      - 8000:8000
    networks:
      - djangonoguero-ntwk

networks:
  djangonoguero-ntwk:
    driver: bridge

Anybody could help me please ? Thanks in advance.

CodePudding user response:

Reset fabric default values from Docker solved the problem.

CodePudding user response:

For example, you have postgres container:

db:
  image: postgres
  environment:
    # This is for example, not use this in production!!!
    POSTGRES_USER: developer
    POSTGRES_DB: db
    POSTGRES_PASSWORD: Passw0rd33
...

Then, in your django project settings, you should write:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'db',
        'USER': 'developer',
        'PASSWORD': 'Passw0rd33',
        'HOST': 'db',
    }
}

Be careful, this is example settings! Best practice is to store this data in .env file!

  • Related