docker -создать не находящуюся переменную среды $ PWD в Ubuntu WSL 2 - PullRequest
1 голос
/ 03 апреля 2020

Я относительно новичок в docker. Я пытался составить файл ниже:

version: "3"

services: 

  postgres:
    restart: always
    image: postgres
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_DB=test_db
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD_FILE=/run/secrets/postgres-passwd
    volumes:
      - test_db:${PWD}

  pgweb:
    restart: always
    image: sosedoff/pgweb
    ports: 
      - "8081:8081" 
    environment:
      - DATABASE_URL=postgres://postgres:POSTGRES_USER@POSTGRES_PASSWORD_FILE:5432/POSTGRES_DB?sslmode=disable
    depends_on:
      - postgres

volumes: 
  test_db:

Я пытаюсь подключить том test_db к моему текущему рабочему каталогу, используя переменную среды $ PWD. Когда я запускаю docker-compose up в своем терминале, я получаю следующее предупреждение:

The PWD variable is not set. Defaulting to a blank string.

Теперь важно отметить, что в настоящее время я использую Ubuntu, работающий на WSL2 на windows 10. Еще одна вещь, на которую стоит обратить внимание: что я бегу ZSH, а не BASH.

Я выполнил точные шаги, упомянутые в документации .

Я также проверил другой вопрос , который, казалось, был похож на мой, но не совсем так, как можно было заменить ${PWD} на ./, который просто не работает в моем case.

При использовании ./ вместо $PWD я получаю следующую ошибку:

for pg_test_postgres_1  Cannot create container for service postgres:\ 
invalid volume specification: 'pg_test_test_db:.:rw': invalid mount config\ 
for type "volume": invalid mount path: '.' mount path must be absolute
...