Docker容器使用docker-compose运行,但不支持docker运行

时间:2018-01-17 10:41:11

标签: django postgresql docker docker-compose dockerfile

首次尝试进入码头工作者并且我撞墙了。 我不明白码头工作的原因以及当我的本地机器何时脱离"从容器。最后,项目使用docker-compose运行,但没有使用docker运行,因为它无法连接到postgres。

当我使用这些设置运行docker-compose运行时,一切正常:

settings.py:

BottomSheetFragment bottomSheetFragment = new BottomSheetFragment();
Bundle bundle = new Bundle();
bundle.putString("test", "oh ya");
bottomSheetFragment.setArguments(bundle);
bottomSheetFragment.show(getSupportFragmentManager()); // Assuming you are using Activity

搬运工-compose.yml

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'postgres',
        'USER': 'user',
        'PASSWORD': 'password',
        'HOST': 'db',
        'PORT': '5432',
    }
}

但是,如果我跑

  1. docker build -t db_test。
  2. docker run -p 4000:8000 db_test
  3. Dockerfile:

    version: '2'
    services:
      db:
        image: postgres
        environment:
          - POSTGRES_USER=user
          - POSTGRES_PASSWORD=password
        ports:
          - '5432:5432'
      redis:
        image: redis
        ports:
          - '6379:6379'
      celery:
        build:
          context: .
          dockerfile: Dockerfile
        env_file: common.env
        command: celery -A saleor worker --app=saleor.celeryconf:app --loglevel=info
        volumes:
          - .:/app:Z
        links:
          - redis
        depends_on:
          - redis
      search:
        image: elasticsearch:5.4.3
        mem_limit: 512m
        environment:
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        ports:
          - '127.0.0.1:9200:9200'
      web:
        build: .
        command: python manage.py runserver 0.0.0.0:8000
        env_file: common.env
        depends_on:
          - db
          - redis
          - search
        ports:
          - '8000:8000'
        volumes:
          - .:/app:Z
      makemigrations:
        build: .
        command: python manage.py makemigrations --noinput
        volumes:
          - .:/app:Z
      migration:
        build: .
        command: python manage.py migrate --noinput
        volumes:
          - .:/app:Z
    

    我得到一个例外:

    在/无法转换主机名的操作错误" db"地址:名称或服务未知

    如果我将数据库设置更改为:

    FROM python:3.5
    ENV PYTHONUNBUFFERED 1
    
    RUN \
      apt-get -y update && \
      apt-get install -y gettext && \
      apt-get clean
    
    ADD requirements.txt /app/
    RUN pip install -r /app/requirements.txt
    
    ADD . /app
    WORKDIR /app
    
    EXPOSE 8000
    ENV PORT 8000
    
    CMD ["uwsgi", "/app/saleor/wsgi/uwsgi.ini"]
    

    我得到的构建和运行:

    无法连接到服务器:连接被拒绝服务器是否在主机上运行" localhost" (127.0.0.1)并接受端口5432上的TCP / IP连接?无法连接到服务器:无法分配请求的地址服务器是否在主机上运行" localhost" (:1)并接受端口5432上的TCP / IP连接?

    这是我机器上的postgres端口。然后,如果我转动postgres并且端口是免费的,则没有任何变化。

    任何帮助都将受到高度赞赏!

0 个答案:

没有答案