还没学会如何使用DockerFile从头开始创建docker镜像。业务需要,直接从本地的容器里进行环境更新。
系统环境变量
目前的环境需要——
- Java
- sonar-scanner
- sonar-scanner-eslint (前端扫描自定义的sonar)
- eslint-cars-server (前端封装后的服务)
- node
- go
使用root用户,将需要的环境变量添加到/etc/profile
和/root/.bashrc
文件下,类似——
export JAVA_HOME=/usr/java/jdk1.8.0_231-amd64
export GOROOT=/usr/local/go
export GOPATH=/go
export PATH=/usr/local/nodejs/node-v0.10.13-linux-x64/bin:$JAVA_HOME/bin:$GOROOT/bin:$PATH
从terminal里启动是没有问题,但上述配置在docker环境启动后没有生效。默认的PATH只识别 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
这些内容。
可以使用软连接的方式,在现有的PATH路径下创建新的软连接——
ln -s /usr/local/go/bin/go /usr/local/bin/go
ln -s /usr/local/nodejs/node-v10.13.0-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/nodejs/node-v10.13.0-linux-x64/bin/npm /usr/local/bin/npm
ln -s /usr/local/nodejs/node-v10.13.0-linux-x64/bin/eslint-cars-server /usr/local/bin/eslint-cars-server
ls -l /usr/local/bin/
total 8
lrwxrwxrwx 1 root root 20 Apr 14 04:59 go -> /usr/local/go/bin/go
lrwxrwxrwx 1 root root 50 Apr 14 05:23 node -> /usr/local/nodejs/node-v10.13.0-linux-x64/bin/node
lrwxrwxrwx 1 root root 49 Apr 14 05:23 npm -> /usr/local/nodejs/node-v10.13.0-linux-x64/bin/npm
-rwxr-xr-x 1 root root 1771 Apr 13 07:05 sonar-scanner
-rwxr-xr-x 1 root root 610 Apr 13 07:05 sonar-scanner-debug
go env变量
默认的配置如下——
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOENV="/root/.config/go/env"
...
...
相同的问题,更新go env相关的变量时,采取上面更新配置文件的的方式依然无法生效。
观察默认的变量有个值为GOENV="/root/.config/go/env"
,手动验证一下go env -w GOPRIVATE="golang.my.test.com"
,这个值会直接保存在GOENV对应的文件下。
所有可以采用这种方式更新需要的go env变量
有疑问加站长微信联系(非本文作者)