Docker-compose считает, что использует другие контейнеры проекта

#docker #docker-compose

Вопрос:

Службы называются одинаково, потому что это два одинаковых проекта…

Когда я это сделаю:

docker-compose -f infra/local/docker-compose.yml ps

Это показало бы мне контейнеры из другого проекта:

 jorgee@jorgee:~/Desktop/Proyectos/sss/sss_api_mx$ docker-compose -f ./infra/local/docker-compose.yml ps
      Name                    Command             State                          Ports                       
-------------------------------------------------------------------------------------------------------------
sss-mysql       docker-entrypoint.sh mysqld   Up      0.0.0.0:8081->3306/tcp,:::8081->3306/tcp, 33060/tcp
sss-php-fpm     /usr/sbin/php-fpm7.4 -O       Up      9000/tcp                                           
sss-webserver   nginx -g daemon off;          Up      0.0.0.0:8080->80/tcp,:::8080->80/tcp      
 

В то время как на самом деле контейнеры для этого проекта называются «mx», как вы можете видеть здесь:

 version: "3.1"
services:
  db:
    image: mysql:8.0
    container_name: sss-mx-mysql
    environment:
      MYSQL_DATABASE: ${SSS_DB_NAME:-sss}
      MYSQL_ROOT_PASSWORD: ${SSS_DB_RPASSWORD:-sss}
      MYSQL_PASSWORD: ${SSS_DB_PASSWORD:-sss}
      MYSQL_USER: ${SSS_DB_USERNAME:-sss_user}
    volumes:
      - ./mysql-volume:/var/lib/mysql
    ports:
      - "8091:3306"

  webserver:
    image: nginx:alpine
    container_name: sss-mx-webserver
    working_dir: /application
    volumes:
      - ../../:/application
      - ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
    ports:
      - "8090:80"

  php-fpm:
    env_file:
      - ./docker/php-fpm/.env
    environment:
      PHP_IDE_CONFIG: "serverName=${SERVER_NAME:-SssWeb}"
    build:
      args:
        user: sss-user
        uid: 1000
      context: ./docker/php-fpm
    container_name: sss-mx-php-fpm
    working_dir: /application
    volumes:
      - ../../:/application
      - ./docker/php-fpm/php-ini-overrides.ini:/etc/php/7.4/fpm/conf.d/99-overrides.ini
      - ./docker/php-fpm/xdebug.ini:/etc/php/7.4/cli/conf.d/20-xdebug.ini
 

Почему docker-compose путается и показывает мне данные из другого проекта?

Комментарии:

1. Совпадают ли имена каталогов двух проектов? Имя проекта по умолчанию-это имя каталога. docs.docker.com/compose/reference (см. -p вариант)

2. @NickODell Спасибо, да, в этом-то и проблема. И PhpStorm не поддерживает флаг-p, и если я объявлю его в файле .env (—env-файл), он также не будет работать. Поэтому мне приходится вручную запускать композицию с флагом-p