2015-06-05 14 views
1

我已经设置docker-compose从自定义存储库中提取我的映像。docker撰写,流浪和不安全存储库

这里是YAML文件看起来像

my_service: 
    image: d-myrepo:5000/mycompany/my_service:latest 
    ports: 
    - "8079:8079" 

现在,如果我跑了漂泊不定,它会错误

==>默认:文件“/代码/建设/泊坞窗,撰写/ out00 -PYZ.pyz/docker.auth.auth“,第46行,在expand_registry_url中 ==>默认:docker.errors ==>默认值:。 ==>默认:DockerException ==>默认值:: ==>默认:HTTPS端点无响应且不安全模式未启用。 以下SSH命令以非零退出状态响应。流浪者假设这意味着命令失败!

/usr/local/bin/docker-compose -f "/vagrant/docker-compose.yml" up -d 

Stdout from the command: 



Stderr from the command: 

stdin: is not a tty 
Creating vagrant_y2y_1... 
Pulling image d-myrepo:5000/mycompany/my_service:latest... 
Traceback (most recent call last): 
    File "<string>", line 3, in <module> 
    File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 31, in main 
    File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 21, in sys_dispatch 
    File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 27, in dispatch 
    File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 24, in dispatch 
    File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 59, in perform_command 
    File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 464, in up 
    File "/code/build/docker-compose/out00-PYZ.pyz/compose.project", line 208, in up 
    File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 214, in recreate_containers 
    File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 197, in create_container 
    File "/code/build/docker-compose/out00-PYZ.pyz/docker.client", line 710, in pull 
    File "/code/build/docker-compose/out00-PYZ.pyz/docker.auth.auth", line 67, in resolve_repository_name 
    File "/code/build/docker-compose/out00-PYZ.pyz/docker.auth.auth", line 46, in expand_registry_url 
docker.errors.DockerException: HTTPS endpoint unresponsive and insecure mode isn't enabled. 

我在网上看到它,它与不安全的回购有关。

它仅适用,只有当我编辑的文件

/etc/default/docker 

与内容

DOCKER_OPTS="-r=true --insecure-registry d-myrepo:5000 ${DOCKER_OPTS}" 

重启泊坞窗服务和手动拉形象。即

docker pull d-myrepo:5000/mycompany/my_service:latest 

有没有办法避免这个错误?并且配置运行顺利?也许我错过了docker-composer.yml文件中的选项?

+0

更改'DOCKER_OPTS'后'docker-compose'是否仍然抱怨? –

+0

如果我手动拉图像后做'vagrant reload',配置运行没有错误:'default:运行docker-compose up ... ==>默认:stdin:不是tty ==>默认:创建vagrant_my_service_1 ...' – Confidence

+0

然后,您需要在流浪者使用码头之前修改码头选项。请参阅http://stackoverflow.com/a/29290807/390808 –

回答

3

感谢您feedack,实现这一目标的最好办法是设置无业游民供应以下方式

config.vm.provision :docker 
    config.vm.provision :docker_compose 
    config.vm.provision "shell", path: "provision.sh", privileged: false 

而shell脚本provision.sh将包括以下相关线路。

sudo echo "DOCKER_OPTS=\"-r=true --insecure-registry my_repo:5000 \${DOCKER_OPTS}\"" | sudo tee /etc/default/docker 
sudo service docker restart 
sudo /usr/local/bin/docker-compose -f /vagrant/docker-compose.yml up -d --allow-insecure-ssl 
+0

很高兴它现在能够运作!你确定shell命令不需要放在* docker_compose配置器之前吗?该手册指出,多个提供者按照他们在流浪文件中出现的顺序执行https://docs.vagrantup.com/v2/provisioning/basic_usage.html –

+1

我编辑了我的答案以获得更好的处理:) – Confidence