使用Remote-Container extension打造vs

2020-11-29  本文已影响0人  芒鞋儿

vscode和docker连用,打造独立于local OS 环境的开发环境。

1. 直接建立container 环境(最简单的方式)

如果你的PC是windows环境,而你需要在Linux环境下进行编译开发
可以使用remote container extension 打造独立的环境。

原理参看官方文档:https://code.visualstudio.com/docs/remote/containers

方法:
安装remote container extention
在panel 下选择C++sample 代码之后,vscode 会自动下载对应的容器。


vscode中的Debian环境

下面这张图是在这个环境下进行debug,可以看到是在容器中而不是本地环境下debug

直接在docker container中进行make 和debug

以上插图是在MacOS下截图,在win 环境下是一样的。

2. 在既定的docker-compose.yml下构造container
PHP 构造自己的container
3. 构建Docker容器之后,再在VScode中重新打开,同时在Browser上直接看到结果
Browser 和 vscode 画面
docker run -d -p 8082:80 --name my-apache-php-app -v /Users/xieheng/gitspace/tryDockerDev/php2DockerDev:/var/www/html php:7.2-apache

此命令的通用模式:docker run -d -p 80:80 --name my-apache-php-app -v "PWD":/var/www/html php:7.2-apache 此处的PWD替换成当前的local directory

此处要注意的是上文中的命令,一定要把当前的工作目录mount到container 中才能访问brower,否则会出现access deny 403的error

  1. 更通用的方式,使用docker-compose.yml 和 Dockerfile 共用的方式


    Browser和vscode remote container development
version: '3.1'

services:
  php:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 8082:80
    volumes:
      - ./src:/var/www/html/
  
  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080
FROM php:7.4-apache
RUN docker-php-ext-install mysqli
docker build - < Dockerfile //可省略而直接用以下的docker-compose命令
docker-compose up --build  //要加上--build避免缺少的镜像
参考:
docker stop $(docker ps -a -q)   //停止所有的容器
docker container prune  // 删除所有已经停止的容器
docker rmi -f $(docker images -a -q) //删除所有容器镜像

sourcecode: https://github.com/xieheng0915/php2DockerDev.git

附注:
总结:

微软的这个remote-container extension是个屌炸天的东西,投入了不少资金开发,目前也是免费提供,非常好。
好处如下:

上一篇 下一篇

猜你喜欢

热点阅读