Sal*_*ssa 11 php windows docker docker-compose docker-for-windows
我有一个 docker-compose.yml 文件,我在其中定义了 php 的图像和构建。它是为带有 php、nginx 和 postgresql 和 postgis 的 Symfony 应用程序制作的:
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"
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu 上一切正常,但是当我尝试在 Windows 10 上运行相同的环境时,出现错误。
docker-compose exec engine bin/console doctrine:schema:create
/usr/bin/env: 'php\r': No such file or directory
Run Code Online (Sandbox Code Playgroud)
Mai*_*aro 14
我想出了一种解决方法:https : //stackoverflow.com/a/2613834/3257568
tr -d '\015' <DOS-file >UNIX-file
Run Code Online (Sandbox Code Playgroud)
所以,我这样做了:
$ docker exec -it <container> bash
$ cd bin
$ tr -d '\015' <console >console.new
$ mv console console.old
$ mv console.new console
Run Code Online (Sandbox Code Playgroud)
它现在正在工作:)
解决此类错误的另一种可能方法是将 .gitattribues 文件添加到您的项目中并设置*.sh text eol=lf(在 docker 容器内运行的任何文件扩展名上)。这样,Windows 上的 git 默认值就不会弄乱您的 .sh 文件。注意:你需要获取新的 git pull 才能使其工作。
就我而言,错误只是运行没有正确权限的 php 脚本。所以你事先 chmod 它或php在开头添加。前任:php bin/console
这两个问题都可能导致相同的错误。
| 归档时间: |
|
| 查看次数: |
17541 次 |
| 最近记录: |