前几天更新了一篇blog,记录了怎么搭建 vscode code server。在使用场景中呢,我们不会使用一个没有语言环境的IDE,某些 IDE 的插件就是依赖于语言环境的。我日常使用 golang 和 php 比较多,这篇文章记录如何在 code server 中配置 golang 和 php 环境。
一、编译镜像
基于上一篇文章,得到了镜像 kelvinblood/code-server:base
,在这个镜像的基础上继续编译新镜像。
有以下几个注意点:
- 基础镜像为先前编译的镜像
kelvinblood/code-server:base
- 配置了 golang 所需的环境变量 GOROOT 和 GOPATH,并打开了 GO111MODULE。
- 安装了 wget/ping/telnet 等常用的工具,方便定位问题。
- 安装了一些常用的 vscode 的 golang 插件。
- 安装了 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包
三、主题和字体
左下角 -> 设置-> 颜色主题,不用看过多的主题,直奔Solarized Dark
修改字体大小,默认14号字体太小了,改成18号