2015-08-04 1 views
2

Я использую файл docker-compose.yml для своего приложения django, и Я пытаюсь сделать docker-compose run web python manage.py dbshell и опустить таблицу django_admin_log как here.Как удалить `django_admin_log` с помощью docker-compose?

Но вернулся
CommandError: You appear not to have the 'psql' program installed or on your path.

Как я могу сделать python manage.py dbshell или удалить таблицу django_admin_log?

Вот мой докер-compose.yml

storage: 
    image: busybox 
    volumes: 
    - /var/lib/postgresql/data 
    - /data 
    command: true 

db: 
    image: postgres 
    environment: 
    - POSTGRESQL_DB=postgres 
    - POSTGRESQL_USER=postgres 
    - POSTGRESQL_PASSWORD=password 
    volumes_from: 
    - storage 

web: 
    build: . 
    environment: 
    - DATABASE_HOST=postgres 
    command: ./run_web.sh 
    ports: 
    - "80:80" 
    links: 
    - db 

Спасибо

ответ

2

Предполагая, что вы используете изображение в Debian или Ubuntu основе, в вашем Dockerfile, вам просто нужно добавить строку:

RUN apt-get update && apt-get -y install postgresql 

Это установит команду psql для вас и позволит вам использовать dbshell.

+1

Спасибо. Но я не хочу устанавливать postgresql в контейнер «web», потому что psql установлен в контейнере «db» ... Есть ли хороший способ подключения к контейнеру «db»? – ksmzn

+0

Собственно, вы делаете; то есть для установки клиента, а не сервера. Веб-сервер должен иметь пакет postgresql, чтобы получить клиент psql. –

+0

О, я допустил ошибку ... Я смог использовать dbshell! Спасибо за ваш ответ. – ksmzn

 Смежные вопросы

  • Нет связанных вопросов^_^