包含标签 docker 的文章

神奇的bug

最近在编译一个node相关的工程,配置好编译环境,设置好代理,昨天一切都进展的挺顺利,很快就得到了结果。但后来发现编译的版本稍微有点儿差异,校验不通过。就把源码切到特定的tag上重来一次。然后就发现了一个神奇的bug。 使用yarn编译,中间一步依赖的一个包在编译时需要去api.github.com上下载特定版本的软件包。但是目标版本使用的软件包版本号类似于v1.2.3-2,在小版本号之后还有-2进行区分,然后这个软件包总是下载失败,导致编译失败。 验证了好久之后确认,代理设置没有问题,其它依赖包可以下载成功,但这个就是不行。后来在issue列表中确认,在特定proxy环境下,这个包会下载失败。失败原因是node中下载使用的request包在经过部分proxy时,对-这样的字符无法正确处理,url错误导致下载失败。 而且搜索后发现这个问题很普遍,不只是vscode的issue列表中报过多,其他很多使用node的开源软件都报过。而且因为是request的问题,一般的解决方法就是回退或更新第3方依赖的软件包,确保软件包的url中不包含-这样的版本号。……

阅读全文

docker私有镜像仓库

上一篇VS code remote提到国内访问docker官方镜像特别慢,可以使用加速器。但对于企业等,都会自建私有镜像地址,也可以解决这个问题。 docker registry Registry是一个无状态的,高可扩展的服务端应用,主要用于存储和分发Docker镜像。 Docker Registry文档 下载registry镜像 1 直接运行registry 这种方式需要机器能够访问docker.io docker run -d -p 5000:5000 --name registry registry:2 2 保存registry.tar并运行 通过可以访问外网的机器先 docker pull registry放入本地镜像仓库 使用docker save保存为tar包 将registry.tar拷贝到无法访问外网的机器上 使用docker load -i将tar包加载到本地镜像仓库 最后docker run运行registry服务 配置私有镜像地址 1 将镜像docker push至私有镜像仓库 和使用registry.tar运行registry服务类似,思路如下: 将镜像tar包拷贝到机器上 使用docker load -i加载到本地镜像 使用docker tag为镜像打上私有镜像地址的标签,比如192.168.1.11:5000/ubuntu:least 使用docker push将镜像推到镜像仓库 使用私有镜像地址 修改daemon.……

阅读全文