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

我知道这是一个愚蠢的问题,但我有以下问题.我使用一年以上的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

解决方法:

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

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

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

看到结果.

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...