запуск контейнера postgres с постоянным томом [docker compose] - PullRequest
0 голосов
/ 16 ноября 2018

У меня проблема с контейнером базы данных, поэтому я хочу смонтировать существующую базу данных (с хоста) в сгенерированный контейнер (с помощью docker-compose). Я покажу вам важную часть файла yaml:

postgres:
        image: postgres
        environment:
            POSTGRES_USER: user
            POSTGRES_PASSWORD: pass
        ports:
        - "5432:5432"
        volumes:
        - ./postgres/data:/var/lib/postgresql/data

Итак, когда я собираю и включаю docker-compose, контейнер postgres завершается:

enter image description here

Если я удаляю постоянный том, он работает! Я также проверил с mysql, mongodb -> та же проблема.

Не могли бы вы зажечь меня?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 06 мая 2019

Самый простой способ - это именованные тома, которые также могут быть повторно использованы в нескольких сервисах и легко извлекаются и проверяются с помощью командной строки docker ...

  1. Первое создание тома docker volume create db-data
  2. Теперь измените ваш файл yml
    services
        postgres:
            image: postgres
            environment:
                POSTGRES_USER: user
                POSTGRES_PASSWORD: pass
            ports:
            - "5432:5432"
            volumes:
            - db-data:/var/lib/postgresql/data
    volumes:
       db-data:
  1. Вы можете проверить объем docker volume inspect db-data

Источник: Ссылка на файл для создания

0 голосов
/ 20 ноября 2018

Я разрешаю этот вопрос и хочу поделиться им. Фактически, для того, чтобы наш контейнер включался после команды docker-compose up, мы должны добавить tty и аргументы команды, такие как:

postgres:
        image: postgres
        environment:
            POSTGRES_USER: user
            POSTGRES_PASSWORD: pass
        ports:
        - "5432:5432"
        volumes:
        - ./postgres/data:/var/lib/postgresql/data
        tty: true
        command: /bin/bash

Надеюсь, это будет полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...