首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在dockerfile中使用私有svn+bower不起作用

在dockerfile中使用私有svn+bower不起作用
EN

Stack Overflow用户
提问于 2016-10-14 15:04:54
回答 2查看 442关注 0票数 5

我一直试图使用docker来运行我的开发环境。我的堆栈有一个专用的bower注册表,需要在我的.bowerrc中使用$HOME

我的.bowerrc文件的格式是:

/home/.bowerrc (作为卷安装在我的码头内)

代码语言:javascript
复制
{
  "registry": "https://<user>:<password>@bower.mycompany.com",
  "timeout": 300000,
  "strict-ssl": false
}

我在我的docker文件中挂载这个文件的方式是使用以下命令:

代码语言:javascript
复制
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

代码语言:javascript
复制
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文件如下所示:

代码语言:javascript
复制
{
    "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 installbower install时,会得到以下错误:

代码语言:javascript
复制
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)

任何人都能帮我理解这个?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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/

然后我接受了证书,一切都很好!

票数 3
EN

Stack Overflow用户

发布于 2016-10-14 15:18:39

这可能与您的坞机和主机之间的用户id差异有关。因此,它会导致docker无法读取所需的文件进行登录。

要了解您的用户id (UID),请在主机和码头上运行:id -u $USER

如果它们是不同的,我将重新构建映像并在坞映像中创建一个用户,如下所示:在useradd -u 999 USERNAME中,999必须是用户的UID,拥有来自您主机的凭据,用户名可能有所不同。

希望那能解决你的问题,问候!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40046381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档