vscode code server 配置 golang 和 php 开发环境

前几天更新了一篇blog,记录了怎么搭建 vscode code server。在使用场景中呢,我们不会使用一个没有语言环境的IDE,某些 IDE 的插件就是依赖于语言环境的。我日常使用 golang 和 php 比较多,这篇文章记录如何在 code server 中配置 golang 和 php 环境。

一、编译镜像

基于上一篇文章,得到了镜像 kelvinblood/code-server:base,在这个镜像的基础上继续编译新镜像。

有以下几个注意点:

  1. 基础镜像为先前编译的镜像 kelvinblood/code-server:base
  2. 配置了 golang 所需的环境变量 GOROOT 和 GOPATH,并打开了 GO111MODULE。
  3. 安装了 wget/ping/telnet 等常用的工具,方便定位问题。
  4. 安装了一些常用的 vscode 的 golang 插件。
  5. 安装了 go版本 1.16.3, php 版本7.1.5 和 最新版的composer。
FROM kelvinblood/code-server:base

ARG GOLANG_VERSION=1.16.3
ARG PHP_VERSION=7.1.5
ENV GOROOT /usr/local/go
ENV GOPATH /var/local/go
ENV PATH $PATH:$GOROOT/bin:$GOPATH/bin
ENV GO111MODULE on
ENV GOPROXY https://goproxy.cn

RUN \
 echo "**** install tools ****" && \
 apt-get update && \
 apt-get install -y \
	wget \
	iputils-ping \
	xinetd telnetd && \
 echo "**** install golang ****" && \
 GO_TGZ=go$(echo "$GOLANG_VERSION").linux-amd64.tar.gz && \
 wget https://golang.org/dl/${GO_TGZ} && \
 tar zxvf ${GO_TGZ} && \
 mv go /usr/local && \
 echo "**** go get for vscode ****" && \
 go get -v golang.org/x/tools/gopls && \
 go get -v github.com/ramya-rao-a/go-outline && \
# go get github.com/uudashr/gopkgs/cmd/gopkgs@latest && \
 go get -v github.com/cweill/gotests/gotests && \
 go get -v github.com/fatih/gomodifytags && \
 go get -v github.com/josharian/impl && \
 go get -v github.com/haya14busa/goplay/cmd/goplay && \
 go get -v github.com/go-delve/delve/cmd/dlv && \
 go get -v honnef.co/go/tools/cmd/staticcheck && \
 go get -v golang.org/x/tools/gopls && \
 echo "**** install php ****" && \
  apt-get -y install libssl-dev libcurl4-openssl-dev libbz2-dev libjpeg-dev libpng-dev libgmp-dev libicu-dev libmcrypt-dev freetds-dev libxslt-dev libcurl3-dev autoconf dpkg-dev file g++ gcc libc-dev make pkg-config re2c && \
  ln -s /usr/lib/x86_64-linux-gnu/libsybdb.a /usr/lib/libsybdb.a && \
  ln -s /usr/lib/x86_64-linux-gnu/libsybdb.so /usr/lib/libsybdb.so && \
  ln -s /usr/lib/x86_64-linux-gnu/libct.a /usr/lib/libct.a && \
  ln -s /usr/lib/x86_64-linux-gnu/libct.so /usr/lib/libct.so && \
  ln -s /usr/include/x86_64-linux-gnu/gmp.h /usr/include/gmp.h && \
  ln -s /usr/include/x86_64-linux-gnu/curl /usr/include/curl && \
  PHP_TGZ=php-${PHP_VERSION}.tar.gz && \
  wget http://am1.php.net/distributions/${PHP_TGZ} && \
  tar -xzvf ${PHP_TGZ} && \
  cd php-${PHP_VERSION} && \
  ./configure --prefix /usr/share/php7 --enable-fpm --enable-mbstring --enable-zip --enable-calendar --enable-bcmath --enable-exif --enable-intl --enable-opcache --enable-shmop --enable-soap --enable-sockets --with-fpm-user=www-data --with-fpm-group=www-data --with-pcre-regex --with-kerberos --with-openssl --with-mcrypt --with-zlib --with-bz2 --with-curl --with-gd --with-jpeg-dir=/usr/include/jpeg8 --with-png-dir=/usr/include/libpng12 --with-gettext --with-gmp --with-mhash --with-xsl && \
  make clean && \
  make && make install && \
  make test && \
  make clean && \
  ln -s /usr/share/php7/sbin/php-fpm /usr/local/bin/php-fpm && \
  ln -s /usr/share/php7/bin/php /usr/local/bin/php && \
  cd .. && \
  curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer && \
 echo "**** clean up ****" && \
 pwd && \
 apt-get clean && \
 rm -rf \
	/tmp/* \
	/var/lib/apt/lists/* \
	/var/tmp/* \
        ${GO_TGZ} \
        ${PHP_TGZ}

docker build 需要比较长的时间,主要看机器性能和网络速度,需要一点耐心,快的也要10分钟,慢的大概要40分钟。

php 编译需要的内存比较高,如果只有1G内存的话最好把 swap 打开。

相应的 docker-compose.yml 文件和先前的没有差别。

二、常用插件

如下图所示,重要的就是这几个:

  • vim 是必不可少的
  • 简体汉化包
  • go包
  • laravel包
  • php Debug包

image-20210412141932034

三、主题和字体

左下角 -> 设置-> 颜色主题,不用看过多的主题,直奔Solarized Dark

image-20210412142238199

修改字体大小,默认14号字体太小了,改成18号

image-20210412142404907


go 命令备忘 使用 dnspod 设置自定义解析