Iotedge: How can I use the local image repository for the 1.0.7 version of iot edge?

Created on 9 May 2019  路  13Comments  路  Source: Azure/iotedge

Hi,

Version 1.0.7 of IOT edge cannot successfully pull the image when using the local docker image repository.And now I've collected some logs.

Expected Behavior
IOT edge1.0.7 wants to use a local docker image repository

Current Behavior
IOT edge1.0.7 cannot use the local docker image. When pull, it will prompt the url does not comply with the rules

Steps to Reproduce
Create a custom module that USES the local docker image repository,
deploy to device,then look at the log information of the iotedge.

Context (Environment)
Ubuntu 16.04, amd64, linux containers

Runtime Versions
iotedged
iotedge 1.0.7.21905529 (f455ae2cd66db716c4bd8e7aaa7984ce092481c0)

Edge Agent
1.0.7

Edge Hub
1.0.7

Docker
3.0.5

Logs
Here are the logs for the Iotedge.

edgeAgent.txt

The reason for using the local repository is that it is fast to debug and fast to pull.
How can I use the local image repository for the 1.0.7 version of iot edge?Many thanks.

1.0.8 bug checkedin customer-reported iotedge

All 13 comments

+1

We are experiencing a similar issue since 1.0.7.

The updates to edgeAgent prevent you from using a registry that does not run on the default port.

Hi there, Pls take a look at this, or if there is some way to workaround like downgrade edgeAgent and edgeHub to 1.0.6.
I tried to set these lines in deployment.template.json after go through https://docs.microsoft.com/en-us/azure/iot-edge/how-to-update-iot-edge

"edgeAgent": {
            "type": "docker",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-agent:1.0.6",
              "createOptions": {}
            }
},

"edgeHub": {
            "type": "docker",
            "status": "running",
            "restartPolicy": "always",
            "settings": {
              "image": "mcr.microsoft.com/azureiotedge-hub:1.0.6",
            }
}

But seems not work.

Seems like some newly added image name validation code is incorrectly flagging valid image names that use non-default port.

As a workaround, if you are using docker to host the local registry, use:
sudo docker run -d -p 80:5000 --restart=always --name registry registry:2

This exposes the registry on the default port 80.

You can then reference the image with just one :, e.g. localhost/abc/def:x.y and then edgeAgent won't complain.

FYI @varunpuranik

Yes, this looks like a bug. Thanks for reporting it. I will fix it soon, the fix will be part of the 1.0.8 release.
Meanwhile, please use the workaround suggested by Venkat, or use Azure Container Registry.

@veyalla @varunpuranik Thanks for your infomations

This is being fixed in #1200

:+1: When will that become part of a release?

We should have a release candidate for 1.0.8 in a week.

A release candidate for 1.0.8 was just released. You can try it out using the 1.0.8-rc1 tag on your images. Packages for the daemon are located here: https://github.com/Azure/azure-iotedge/releases/tag/1.0.8-rc1

Hi @varunpuranik @veyalla ,

we are facing the similar problem. As we have production deployment coming up will it work if I downgrade the version of iotedge and then deploy the modules?
can you please confirm this and if yes can you please provide the steps require to downgrade iotedge version on windows?
thank you.

@payalgaikwad42 can you explain your scenario a little more? This bug only presents itself when using a repository on a non-standard port. This is usually only the case in development scenarios, not production scenarios. I want to make sure that there isn't some other workaround because there are significant connectivity improvements between 1.0.6 and 1.0.7.1. If possible, we'd like to get you on 1.0.7.1.

To downgrade, you can update the Edge Agent tag in the deployment to 1.0.6.

@myagley we have two iothub acting as developement env and production env with dev and prod iotedge devices respectively. This is for internal testing only and dev and prod have difference of credentials of B2C, signalR etc. not the actual production enviroment on cloud.

1.0.8 is released.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

mill5james picture mill5james  路  3Comments

shizn picture shizn  路  6Comments

alaendle picture alaendle  路  5Comments

alaendle picture alaendle  路  4Comments

nhuurnink picture nhuurnink  路  6Comments