Wercker 为 docker 推送部署 returns 404
Wercker deploy returns 404 for docker push
第一次使用 Wercker,我正在使用 internal/docker-push
。当我 运行 我的部署步骤时,我从 docker-hub.
收到 404 错误
ERROR Error interacting with this repository: wluce/statler-waldorf-corp-team-service PUT https://registry.hub.docker.com/v1/repositories/wluce/statler-waldorf-corp-team-service/ returned 404
这不是我第一次 运行 这一步,以前也成功过。该图像存在并且是 here.
我不知道可以更改什么。
这是我用来执行构建和部署的 wercker.yml
文件。
box: microsoft/dotnet:2.0.0-sdk-2.0.2
no-response-timeout: 10
build:
steps:
- script:
name: restore
cwd: src/StatlerWaldorfCorp.TeamService
code: dotnet restore
- script:
name: build
cwd: src/StatlerWaldorfCorp.TeamService
code: dotnet build
- script:
name: test-restore
cwd: test/StatlerWaldorfCorp.TeamService.Tests
code: dotnet restore
- script:
name: test-build
cwd: test/StatlerWaldorfCorp.TeamService.Tests
code: dotnet build
- script:
name: test-run
cwd: test/StatlerWaldorfCorp.TeamService.Tests
code: dotnet test
- script:
name: integration-test-restore
cwd: test/StatlerWaldorfCorp.TeamService.Tests.Integration
code: dotnet restore
- script:
name: integration-test-build
cwd: test/StatlerWaldorfCorp.TeamService.Tests.Integration
code: dotnet build
- script:
name: integration-test-run
cwd: test/StatlerWaldorfCorp.TeamService.Tests.Integration
code: dotnet test
- script:
name: publish
cwd: src/StatlerWaldorfCorp.TeamService
code: dotnet publish -o publish
- script:
name: copy binary
cwd: src/StatlerWaldorfCorp.TeamService
code: cp -r . $WERCKER_OUTPUT_DIR/app
deploy:
box: microsoft/aspnetcore:2.0.0
steps:
- internal/docker-push:
cwd: $WERCKER_OUTPUT_DIR/app
username: $DOCKER_USERNAME
password: $DOCKER_PASSWORD
repository: wluce/statler-waldorf-corp-team-service
registry: https://registry.hub.docker.com
entrypoint: "/pipeline/source/app/docker_entrypoint.sh"
正如在 Wercker slack 频道上讨论的和建议的@cggaldes,解决方案是在步骤定义上设置完整的注册表地址,例如:
- internal/docker-push:
registry: https://registry.hub.docker.com/v2 <-- This
repository: org/repo
username: $DOCKER_USER
password: $DOCKER_PASS
...
显然 internal/docker-push
默认使用最近 changed/broken.
的 v1
在internal/docker-push步,
只需添加附加了 v2 的注册表,让 wercker 像这样使用 v2 注册表 api
repository: gapostolov/course-repo
registry: https://registry.hub.docker.com/v2
第一次使用 Wercker,我正在使用 internal/docker-push
。当我 运行 我的部署步骤时,我从 docker-hub.
ERROR Error interacting with this repository: wluce/statler-waldorf-corp-team-service PUT https://registry.hub.docker.com/v1/repositories/wluce/statler-waldorf-corp-team-service/ returned 404
这不是我第一次 运行 这一步,以前也成功过。该图像存在并且是 here.
我不知道可以更改什么。
这是我用来执行构建和部署的 wercker.yml
文件。
box: microsoft/dotnet:2.0.0-sdk-2.0.2
no-response-timeout: 10
build:
steps:
- script:
name: restore
cwd: src/StatlerWaldorfCorp.TeamService
code: dotnet restore
- script:
name: build
cwd: src/StatlerWaldorfCorp.TeamService
code: dotnet build
- script:
name: test-restore
cwd: test/StatlerWaldorfCorp.TeamService.Tests
code: dotnet restore
- script:
name: test-build
cwd: test/StatlerWaldorfCorp.TeamService.Tests
code: dotnet build
- script:
name: test-run
cwd: test/StatlerWaldorfCorp.TeamService.Tests
code: dotnet test
- script:
name: integration-test-restore
cwd: test/StatlerWaldorfCorp.TeamService.Tests.Integration
code: dotnet restore
- script:
name: integration-test-build
cwd: test/StatlerWaldorfCorp.TeamService.Tests.Integration
code: dotnet build
- script:
name: integration-test-run
cwd: test/StatlerWaldorfCorp.TeamService.Tests.Integration
code: dotnet test
- script:
name: publish
cwd: src/StatlerWaldorfCorp.TeamService
code: dotnet publish -o publish
- script:
name: copy binary
cwd: src/StatlerWaldorfCorp.TeamService
code: cp -r . $WERCKER_OUTPUT_DIR/app
deploy:
box: microsoft/aspnetcore:2.0.0
steps:
- internal/docker-push:
cwd: $WERCKER_OUTPUT_DIR/app
username: $DOCKER_USERNAME
password: $DOCKER_PASSWORD
repository: wluce/statler-waldorf-corp-team-service
registry: https://registry.hub.docker.com
entrypoint: "/pipeline/source/app/docker_entrypoint.sh"
正如在 Wercker slack 频道上讨论的和建议的@cggaldes,解决方案是在步骤定义上设置完整的注册表地址,例如:
- internal/docker-push:
registry: https://registry.hub.docker.com/v2 <-- This
repository: org/repo
username: $DOCKER_USER
password: $DOCKER_PASS
...
显然 internal/docker-push
默认使用最近 changed/broken.
在internal/docker-push步, 只需添加附加了 v2 的注册表,让 wercker 像这样使用 v2 注册表 api
repository: gapostolov/course-repo
registry: https://registry.hub.docker.com/v2