постгри, которая крутится в контейнере. Если напрямую зайти в контейнер и выполнить
cat seed.sql | psql postgres://postgres:postgres@postgres:5432/dbname?sslmode=disable
- всё ок. Но выполняя эту же команду через docker-compose exec db , выдаёт
could not translate host name "postgres"...
.
В чём проблема?
hostname: postgres
название сервиса - db
Замени в url название хоста на db, а hostname выкинь
Пробовал Тоже самое только с "db"
Показывай docker-compose.yml
version: '3.3' services: front: restart: always container_name: front environment: `…` depends_on: - api - audio-controller links: - api ports: - ${FRONT_NODE_PORT}:${FRONT_NODE_PORT} volumes: - ../tribus-front/:/app:cached - ${AUDIO_CONTROLLER_PATH}:/audio-controller # access to linked modules build: context: ../tribus-front dockerfile: dev.Dockerfile api: restart: always container_name: api environment: `...` depends_on: - mongo links: - mongo ports: - ${API_NODE_PORT}:${API_NODE_PORT} - "9229:9229" volumes: - ../tribus-api/:/app:cached build: context: ../tribus-api dockerfile: dev.Dockerfile mongo: restart: always container_name: database image: mongo:latest environment: MONGO_INITDB_ROOT_USERNAME: ${MONGO_ROOT_USERNAME} MONGO_INITDB_ROOT_PASSWORD: ${MONGO_ROOT_PASSWORD} ports: - "27017:27017" volumes: - ./data/:/data/db audio-controller: restart: always container_name: audio-controller volumes: - ${AUDIO_CONTROLLER_PATH}:/app build: context: ../audio-controller dockerfile: dev.Dockerfile
version: '3' services: web: build: context: . ports: - 8080:8080 volumes: - .:/app depends_on: - db networks: - app db: image: postgres:alpine container_name: postgres env_file: - .env environment: POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: ${DB_NAME} ports: - ${DB_PORT_IN_DOCKER} networks: - mynet - app volumes: - data:/var/lib/psql - .:/app volumes: data: networks: mynet: app:
Так, а зачем ты указываешь url, если выполняешь команду внутри контейнера db? Замени вторую половину команды на psql dbname
а как именно запускаешь docker-compose exec ?
Через Makefile docker-compose exec db cat app/seed.sql | psql ${DB_NAME} -U ${DB_USER}
app/seed.sql в контейнере? psql случайно не локальный запускается?
да, app в контейнере. Запускается, видимо, локально. Начал ругаться на данные, которые помещаю.
Обсуждают сегодня