У меня есть файл docker-compose.yml, где я определил изображения и сборку для php. Это сделано для приложения Symfony с php, nginx и postgresql с postgis:
version: '2'
services:
front:
image: nginx
ports:
- "81:80"links:
- "engine:engine"- "db:db"volumes:
- ".:/home/docker:ro"- "./docker/front/default.conf:/etc/nginx/conf.d/default.conf:ro"
engine:
build: ./docker/engine/
volumes:
- ".:/home/docker:rw"- "./docker/engine/php.ini:/usr/local/etc/php/conf.d/custom.ini:ro"links:
- "db:db"working_dir: "/home/docker"
db:
image: camptocamp/postgres:9.6
ports:
- "5433:5432"environment:
- "POSTGRES_DB=pfe"- "POSTGRES_PASSWORD=admin"- "POSTGRES_USER=admin"- "PGDATA=/var/lib/postgresql/data/pgdata"
На Ubuntu все работает нормально, но когда я попытался запустить ту же среду на Windows 10, я получил ошибку.
docker-compose exec engine bin/console doctrine:schema:create
/usr/bin/env: 'php\r': No such file or directory
Из сообщения об ошибке кажется, что вы столкнулись с проблемой, связанной с EOL.
Попробуйте конвертировать ваши скрипты / файлы в формат EOL, отформатированный в UNIX.
Вы можете использовать Sublime / Notepadd ++ или любой редактор, который поддерживает эту функцию.
Или на платформе Unix вы можете попробовать dos2unix.
Я выясняю способ решения на основе этого: https://stackoverflow.com/a/2613834/3257568
tr -d '\015' <DOS-file >UNIX-file
Итак, я сделал это:
$ docker exec -it <container> bash
$ cd bin
$ tr -d '\015' <console >console.new
$ mv console console.old
$ mv console.new console
Сейчас работает 🙂