我一直试图使用docker来运行我的开发环境。我的堆栈有一个专用的bower注册表,需要在我的.bowerrc中使用$HOME。
我的.bowerrc文件的格式是:
/home/.bowerrc (作为卷安装在我的码头内)
{
"registry": "https://<user>:<password>@bower.mycompany.com",
"timeout": 300000,
"strict-ssl": false
}我在我的docker文件中挂载这个文件的方式是使用以下命令:
docker run -it --net='host' -v $(pwd):/home/dev/app -v /home/USER/.dockershared/.bowerrc:/home/.bowerrc --name="myproject" --privileged bower-gulp:node0.12我的Dockerfile是为支持使用bower、gulp和svn的环境而构建的。这是Dockerfile
FROM node:0.12-wheezy
RUN useradd -ms /bin/bash dev
RUN chown -R dev:dev /home/dev
USER dev
ENV HOME /home/dev
ENV PATH "$PATH:/home/dev/.npm-global/bin"
WORKDIR /home/dev/app
RUN mkdir /home/dev/.npm-global && \
npm config set prefix '/home/dev/.npm-global' && \
npm install -g bower gulp && \
apt-get install subversion
ENTRYPOINT ["/bin/sh", "-c", "/bin/bash"]使用package.json命令的bower install文件如下所示:
{
"name": "my_project",
"version": "3.1.3",
"description": "",
"author": "",
"license": "ISC",
"repository": {
"type": "svn",
"url": "https://svn.mycompany.com/repos/My_repo"
},
"devDependencies": {
"bower": "1.x",
"del": "^2.2.0",
"gulp": "3.x",
"gulp-maven-deploy": "^0.2.0",
"gulp-rename": "^1.2.2",
"gulp-template": "^3.1.0",
"node-rest-client": "^1.8.0",
"run-sequence": "^1.1.5",
"svn-npm-crutch": "0.x"
},
"svnDependencies": {
"framework-tools-build": "https://svn.mycompany.com/repos/tools/build/trunk",
"framework-tools-functional-testing": "https://svn.mycompany.com/repos/tools/functional-testing/trunk"
},
"engines": {
"node": ">=0.8.0"
},
"scripts": {
"install": "bower install -F --allow-root && node ./node_modules/svn-npm-crutch/lib/svn-npm-crutch.js",
"demo-mode": "gulp functional-test --browser=chrome --demo"
},
"config": {
"unsafe-perm": true
}
}最后,当我尝试npm install或bower install时,会得到以下错误:
bower ECMDERR Failed to execute "svn list https://svn.mycompany.com/repos/ui/common/tags --verbose --non-interactive", exit code of #1 svn: OPTIONS of 'https://svn.mycompany.com/repos/ui/common/tags': authorization failed: Could not authenticate to server: rejected Basic challenge (https://svn.mycompany.com)
Additional error details:
svn: OPTIONS of 'https://svn.mycompany.com/repos/ui/common/tags': authorization failed: Could not authenticate to server: rejected Basic challenge (https://svn.mycompany.com)任何人都能帮我理解这个?
发布于 2016-10-19 14:49:25
我终于明白了问题所在。
SVN证书应在码头容器内接受。为此,在对接器容器中,使用交互式附加模式-ia输入并使用入口点/bin/bash控制台,运行以下命令:
svn info <any_svn_respository_of_my_company>
示例
svn info https://svn.mycompany.com/repos/ui/common/。
然后我接受了证书,一切都很好!
发布于 2016-10-14 15:18:39
这可能与您的坞机和主机之间的用户id差异有关。因此,它会导致docker无法读取所需的文件进行登录。
要了解您的用户id (UID),请在主机和码头上运行:id -u $USER
如果它们是不同的,我将重新构建映像并在坞映像中创建一个用户,如下所示:在useradd -u 999 USERNAME中,999必须是用户的UID,拥有来自您主机的凭据,用户名可能有所不同。
希望那能解决你的问题,问候!
https://stackoverflow.com/questions/40046381
复制相似问题