设置从主机到docker容器的PHP路径

时间:2017-06-12 13:55:44

标签: php docker environment-variables visual-studio-code

我知道这是一个愚蠢的问题,但我有以下问题。我使用一年以上的Docker和一个编辑器来改变我的程序,它是作为卷的hostet。

我没有安装php,因为它只在容器内部运行,就像几乎所有其他服务器程序一样(如sql,apache)。现在我安装了visual studio代码,它无法找到使用intellisense的php路径。

我知道我可以在docker-compose或Dockerfile中设置环境路径来为我的容器设置环境。但是,如果它的运行,容器是隔离到外面的,除了像docker cp。

这样的命令

是否可以设置从主机到容器机器的路径,以便visual studio代码可以在容器内部找到PHP并将其用于智能感知?或者我必须在我的主机上安装php?但在我看来,这会破坏Docker容器的使用。

例如在visual studio code config settings.json

"php.validate.executablePath": DOCKERCONTAINER/usr/bin/php

1 个答案:

答案 0 :(得分:5)

诀窍是创建一个调用我们PHP容器的Bash文件。

首先,使用此docker-compose.yml启动一个PHP7容器并使其运行

version: "3"
services:  
  python:
    image: php:7.2
    container_name: php7-vscode
    restart: always #this option will keep your container always running, auto start after turn on your host machine
    stdin_open: true
    networks:
      - proxy
networks:
  proxy:
    external: true

在/ usr / local / bin中创建一个名为php的文件

Chmod使其可执行

sudo chmod +x php

此文件将包含此脚本,该脚本使用我们正在运行的容器来处理php

#!/bin/bash
docker exec -i --user=1000:1000 php7-vscode php "$@"

1000:1000是我们的用户ID和我们主机上的用户组。我们必须在主机上以当前用户身份运行,以便容器不会修改文件的所有者。

就是这样。现在,您可以输入

php -v

查看结果。