[GH-ISSUE #87] could you have an armhf image? #38

Closed
opened 2026-02-26 04:33:51 +03:00 by kerem · 23 comments
Owner

Originally created by @gbrault on GitHub (Oct 4, 2018).
Original GitHub issue: https://github.com/mageddo/dns-proxy-server/issues/87

docker load the image on armf but refuse executing: this is because the image is not compiled for armf...

Originally created by @gbrault on GitHub (Oct 4, 2018). Original GitHub issue: https://github.com/mageddo/dns-proxy-server/issues/87 docker load the image on armf but refuse executing: this is because the image is not compiled for armf...
kerem 2026-02-26 04:33:51 +03:00
  • closed this issue
  • added the
    feature
    label
Author
Owner

@mageddo commented on GitHub (Oct 4, 2018):

Hi @gbrault, can you elaborate what is armf? I searched on Google but didn't found concrete results. You mean generate a binary release for arm processors?

<!-- gh-comment-id:427202935 --> @mageddo commented on GitHub (Oct 4, 2018): Hi @gbrault, can you elaborate what is armf? I searched on Google but didn't found concrete results. You mean generate a binary release for arm processors?
Author
Owner

@mageddo commented on GitHub (Oct 4, 2018):

I found this docker user . Are you talking about generate a DPS docker image based on images of that user repository like https://hub.docker.com/r/arm64v8/debian/ ?

<!-- gh-comment-id:427203887 --> @mageddo commented on GitHub (Oct 4, 2018): I found [this docker user ](https://hub.docker.com/r/arm64v8). Are you talking about generate a DPS docker image based on images of that user repository like https://hub.docker.com/r/arm64v8/debian/ ?
Author
Owner

@mageddo commented on GitHub (Oct 4, 2018):

If yes, which arm are you interested in? Is this image ok for you ? https://hub.docker.com/r/arm64v8/debian/

<!-- gh-comment-id:427204060 --> @mageddo commented on GitHub (Oct 4, 2018): If yes, which arm are you interested in? Is this image ok for you ? https://hub.docker.com/r/arm64v8/debian/
Author
Owner

@gbrault commented on GitHub (Oct 6, 2018):

Thanks @mageddo, I elaborate:
1- I have to investigate the reference you provided
2- The reference image for me for ARM is Debian based raspberry pi aka raspbian https://www.raspberrypi.org/downloads/raspbian/
3- I misspelled armf actually it's armhf (armhf stands for "arm hard float", and is the name given to a debian port for arm processors (armv7+) that have hardware floating point support), Anyway Raspbian is the target (you will have to figure out: maybe they are 32 bits and 64 bits flavor). My target processor is Raspberry pi 3 (which is 64 bits?) ( uname -a => Linux raspberrypi 4.14.69-v7+ #1141 SMP Mon Sep 10 15:26:29 BST 2018 armv7l GNU/Linux )

<!-- gh-comment-id:427552448 --> @gbrault commented on GitHub (Oct 6, 2018): Thanks @mageddo, I elaborate: 1- I have to investigate the reference you provided 2- The reference image for me for ARM is Debian based raspberry pi aka raspbian https://www.raspberrypi.org/downloads/raspbian/ 3- I misspelled armf actually it's armhf (armhf stands for "arm hard float", and is the name given to a debian port for arm processors (armv7+) that have hardware floating point support), Anyway Raspbian is the target (you will have to figure out: maybe they are 32 bits and 64 bits flavor). My target processor is Raspberry pi 3 (which is 64 bits?) ( uname -a => Linux raspberrypi 4.14.69-v7+ #1141 SMP Mon Sep 10 15:26:29 BST 2018 armv7l GNU/Linux )
Author
Owner

@mageddo commented on GitHub (Oct 6, 2018):

Okay, I compiled arm and arm64 images, you could try to run them

dns-proxy-server-linux-arm-2.7.0.tgz
dns-proxy-server-linux-arm64-2.7.0.tgz

If you need the docker docker image

  • Clone this branch
  • Download dns-proxy-server-linux-arm-2.7.0.tgz and dns-proxy-server-linux-arm64-2.7.0.tgz then move them to build directory (create this if necessary)
  • Build docker image using
$ docker-compose build prod-build-arm7x86-image-dps
$ docker-compose build prod-build-arm8x86-image-dps
$ docker-compose build prod-build-arm8x64-image-dps

Let me know if it works for you, then if yes we can make it official

<!-- gh-comment-id:427604111 --> @mageddo commented on GitHub (Oct 6, 2018): Okay, I compiled arm and arm64 images, you could try to run them [dns-proxy-server-linux-arm-2.7.0.tgz](https://github.com/mageddo/dns-proxy-server/releases/download/2.7.0/dns-proxy-server-linux-arm-2.7.0.tgz) [dns-proxy-server-linux-arm64-2.7.0.tgz](https://github.com/mageddo/dns-proxy-server/releases/download/2.7.0/dns-proxy-server-linux-arm64-2.7.0.tgz) If you need the docker docker image * Clone [this branch](https://github.com/mageddo/dns-proxy-server/tree/feature/87) * Download `dns-proxy-server-linux-arm-2.7.0.tgz` and `dns-proxy-server-linux-arm64-2.7.0.tgz` then move them to `build` directory (create this if necessary) * Build docker image using ```bash $ docker-compose build prod-build-arm7x86-image-dps $ docker-compose build prod-build-arm8x86-image-dps $ docker-compose build prod-build-arm8x64-image-dps ``` Let me know if it works for you, then if yes we can make it official
Author
Owner

@gbrault commented on GitHub (Oct 7, 2018):

Thanks: I give a try and let you know!

<!-- gh-comment-id:427627184 --> @gbrault commented on GitHub (Oct 7, 2018): Thanks: I give a try and let you know!
Author
Owner

@gbrault commented on GitHub (Oct 7, 2018):

I am not successful building the docker image (32 bits).
1- cloned https://github.com/mageddo/dns-proxy-server/tree/feature/87
2- created build directory
3- copied both file in build
4- docker-compose build prod-build-arm7x86-image-dps

did that on a windows10 machine

tells me

C:\Users\gbrau\dns-proxy-server>docker-compose build prod-build-arm7x86-image-dps
WARNING: The PWD variable is not set. Defaulting to a blank string.
WARNING: The TRAVIS_BRANCH variable is not set. Defaulting to a blank string.
WARNING: The REPO_TOKEN variable is not set. Defaulting to a blank string.
WARNING: The HOME variable is not set. Defaulting to a blank string.
ERROR: No such service: prod-build-arm7x86-image-dps

Any idea?

<!-- gh-comment-id:427656591 --> @gbrault commented on GitHub (Oct 7, 2018): I am not successful building the docker image (32 bits). 1- cloned https://github.com/mageddo/dns-proxy-server/tree/feature/87 2- created build directory 3- copied both file in build 4- docker-compose build prod-build-arm7x86-image-dps did that on a windows10 machine tells me C:\Users\gbrau\dns-proxy-server>docker-compose build prod-build-arm7x86-image-dps WARNING: The PWD variable is not set. Defaulting to a blank string. WARNING: The TRAVIS_BRANCH variable is not set. Defaulting to a blank string. WARNING: The REPO_TOKEN variable is not set. Defaulting to a blank string. WARNING: The HOME variable is not set. Defaulting to a blank string. ERROR: No such service: prod-build-arm7x86-image-dps Any idea?
Author
Owner

@mageddo commented on GitHub (Oct 7, 2018):

Look likes prod-build-arm7x86-image-dps it's no present on docker-compose.yml, but it is for me. Make sure this is our last commit, try

$ git checkout feature/87

or

git checkout b714a857f46afe69e5889b6b4b8d3192eff99506

Then try it again

<!-- gh-comment-id:427664095 --> @mageddo commented on GitHub (Oct 7, 2018): Look likes `prod-build-arm7x86-image-dps` it's no present on docker-compose.yml, but it is for me. Make sure [this is our last commit](https://github.com/mageddo/dns-proxy-server/commit/b714a857f46afe69e5889b6b4b8d3192eff99506), try ``` $ git checkout feature/87 ``` or ``` git checkout b714a857f46afe69e5889b6b4b8d3192eff99506 ``` Then try it again
Author
Owner

@mageddo commented on GitHub (Oct 7, 2018):

Also make sure you are running docker-compose on folder that have that content

.
├── build
├── builder
├── cache
├── conf
├── controller
├── countlines
├── dns.go
├── docker-compose.yml
├── Dockerfile
├── Dockerfile.arm7x86
├── Dockerfile.arm8x64
├── Dockerfile.arm8x86
├── Dockerfile.hub
├── docs
├── events
├── files
├── flags
├── LICENSE
├── log
├── proxy
├── README.md
├── RELEASE-NOTES.md
├── resolvconf
├── service
├── static
├── test
├── utils
├── vendor
├── VERSION

The idea here is to docker-compose use docker-compose.yml file to build arm7x86 image based on Dockerfile.arm7x86 file

<!-- gh-comment-id:427664337 --> @mageddo commented on GitHub (Oct 7, 2018): Also make sure you are running docker-compose on folder that have that content ``` . ├── build ├── builder ├── cache ├── conf ├── controller ├── countlines ├── dns.go ├── docker-compose.yml ├── Dockerfile ├── Dockerfile.arm7x86 ├── Dockerfile.arm8x64 ├── Dockerfile.arm8x86 ├── Dockerfile.hub ├── docs ├── events ├── files ├── flags ├── LICENSE ├── log ├── proxy ├── README.md ├── RELEASE-NOTES.md ├── resolvconf ├── service ├── static ├── test ├── utils ├── vendor ├── VERSION ``` The idea here is to docker-compose use `docker-compose.yml` file to build `arm7x86` image based on `Dockerfile.arm7x86` file
Author
Owner

@gbrault commented on GitHub (Oct 13, 2018):

Ok, the container is now in my Docker HUB
you can see https://hub.docker.com/r/gbrault/dns-proxy-server-arm7x86/
I have it alive in my RPI up and running!
I need now to test it!
I let you know the result

<!-- gh-comment-id:429522744 --> @gbrault commented on GitHub (Oct 13, 2018): Ok, the container is now in my Docker HUB you can see https://hub.docker.com/r/gbrault/dns-proxy-server-arm7x86/ I have it alive in my RPI up and running! I need now to test it! I let you know the result
Author
Owner

@gbrault commented on GitHub (Oct 13, 2018):

Most of it works, but I have an issue when not providing --hostnames creating containers: it seems you then use the container ID as the default name. Here is an excerpt of the logs

2018/10/13 09:07:53 INFO f=docker.go:60 pkg=github.com/mageddo/dns-proxy-server/events/docker m=HandleDockerEvents status=container-from-list-begin, container=/nextcloud
2018/10/13 09:07:53 INFO f=local.go:34 pkg=github.com/mageddo/dns-proxy-server/events/local m=LoadConfiguration status=begin, confPath=/app/conf/config.json
2018/10/13 09:07:53 INFO f=local.go:37 pkg=github.com/mageddo/dns-proxy-server/events/local m=LoadConfiguration status=openingFile
2018/10/13 09:07:53 INFO f=local.go:65 pkg=github.com/mageddo/dns-proxy-server/events/local m=LoadConfiguration status=success
2018/10/13 09:07:53 DEBUG f=docker.go:173 pkg=github.com/mageddo/dns-proxy-server/events/docker m=putHostnames container=/nextcloud, network=myNetwork, ip=172.18.0.4
2018/10/13 09:07:53 DEBUG f=docker.go:185 pkg=github.com/mageddo/dns-proxy-server/events/docker m=putHostnames host=5b77a6c81d52, ip=172.18.0.4
2018/10/13 09:07:53 INFO f=docker.go:66 pkg=github.com/mageddo/dns-proxy-server/events/docker m=HandleDockerEvents status=container-from-list-success, container=/nextcloud, hostnames=[5b77a6c81d52]

So I have a question: when hostnames is not specified what is the default?

Locking to docker documentation => please see
Container networking

Attached complete log
log.txt

<!-- gh-comment-id:429526374 --> @gbrault commented on GitHub (Oct 13, 2018): Most of it works, but I have an issue when not providing --hostnames creating containers: it seems you then use the container ID as the default name. Here is an excerpt of the logs 2018/10/13 09:07:53 INFO f=docker.go:60 pkg=github.com/mageddo/dns-proxy-server/events/docker m=HandleDockerEvents status=container-from-list-begin, container=/nextcloud 2018/10/13 09:07:53 INFO f=local.go:34 pkg=github.com/mageddo/dns-proxy-server/events/local m=LoadConfiguration status=begin, confPath=/app/conf/config.json 2018/10/13 09:07:53 INFO f=local.go:37 pkg=github.com/mageddo/dns-proxy-server/events/local m=LoadConfiguration status=openingFile 2018/10/13 09:07:53 INFO f=local.go:65 pkg=github.com/mageddo/dns-proxy-server/events/local m=LoadConfiguration status=success 2018/10/13 09:07:53 DEBUG f=docker.go:173 pkg=github.com/mageddo/dns-proxy-server/events/docker m=putHostnames container=/nextcloud, network=myNetwork, ip=172.18.0.4 2018/10/13 09:07:53 DEBUG f=docker.go:185 pkg=github.com/mageddo/dns-proxy-server/events/docker m=putHostnames host=5b77a6c81d52, ip=172.18.0.4 2018/10/13 09:07:53 INFO f=docker.go:66 pkg=github.com/mageddo/dns-proxy-server/events/docker m=HandleDockerEvents status=container-from-list-success, container=/nextcloud, hostnames=[5b77a6c81d52] So I have a question: when hostnames is not specified what is the default? Locking to docker documentation => please see [Container networking](https://docs.docker.com/config/containers/container-networking/#published-ports) Attached complete log [log.txt](https://github.com/mageddo/dns-proxy-server/files/2475298/log.txt)
Author
Owner

@gbrault commented on GitHub (Oct 13, 2018):

I have found the issue: portainer, the deployment tool I use is setting this hostname...
So: no need for investigation!

Thx, I keep you posted

<!-- gh-comment-id:429532011 --> @gbrault commented on GitHub (Oct 13, 2018): I have found the issue: portainer, the deployment tool I use is setting this hostname... So: no need for investigation! Thx, I keep you posted
Author
Owner

@mageddo commented on GitHub (Oct 13, 2018):

So I have a question: when hostnames is not specified what is the default?

DPS uses HOSTNAMES env and/or --hostnames option. I'm not sure but reading the link you posted and based on my past experiences, docker will put the container name at hostname option then DPS will use that..

DPS has a new feature when you can set container name / service name as hostname, but it is disabled by default see the reference

<!-- gh-comment-id:429545485 --> @mageddo commented on GitHub (Oct 13, 2018): > So I have a question: when hostnames is not specified what is the default? DPS uses `HOSTNAMES` env and/or `--hostnames` option. I'm not sure but reading the link you posted and based on my past experiences, docker will put the container name at hostname option then DPS will use that.. DPS has a new feature when you can set container name / service name as hostname, but it is disabled by default [see the reference](http://mageddo.github.io/dns-proxy-server/docs/features#access-container-by-its-container-name--service-name)
Author
Owner

@mageddo commented on GitHub (Oct 13, 2018):

Glad it works for you, so next step is to officially generate ARM images, I think it would be great to document how compile DPS for others platforms too.

<!-- gh-comment-id:429545700 --> @mageddo commented on GitHub (Oct 13, 2018): Glad it works for you, so next step is to officially generate ARM images, I think it would be great to document how compile DPS for others platforms too.
Author
Owner

@mageddo commented on GitHub (Oct 13, 2018):

I'm just curious, If you can share that, what is the objective to run docker inside a RPI with portainer, DPS, etc. ?

<!-- gh-comment-id:429545820 --> @mageddo commented on GitHub (Oct 13, 2018): I'm just curious, If you can share that, what is the objective to run docker inside a RPI with portainer, DPS, etc. ?
Author
Owner

@bosix commented on GitHub (Nov 2, 2018):

@mageddo for me there are the same reasons like using docker on "normal" servers. In my setup the rpi plays proxy for dns and https stuff and organise ips via dhcp. There is a git repo for all config files of the services and the configuration of each service (via docker-compose). I have one repository for each of my rpis and managing services via docker is much easier than do it manually.

I Hope I could help you :)

<!-- gh-comment-id:435513311 --> @bosix commented on GitHub (Nov 2, 2018): @mageddo for me there are the same reasons like using docker on "normal" servers. In my setup the rpi plays proxy for dns and https stuff and organise ips via dhcp. There is a git repo for all config files of the services and the configuration of each service (via docker-compose). I have one repository for each of my rpis and managing services via docker is much easier than do it manually. I Hope I could help you :)
Author
Owner

@hgross commented on GitHub (Dec 2, 2018):

Glad it works for you, so next step is to officially generate ARM images, I think it would be great to document how compile DPS for others platforms too.

Indeed - any news/plans on the officially generated ARM images?

<!-- gh-comment-id:443544890 --> @hgross commented on GitHub (Dec 2, 2018): > Glad it works for you, so next step is to officially generate ARM images, I think it would be great to document how compile DPS for others platforms too. Indeed - any news/plans on the officially generated ARM images?
Author
Owner

@mageddo commented on GitHub (Dec 3, 2018):

@hgross I already did some code but didn't complete, I'm working on this now and I'm planning to arm support to be released on the next DPS version, not sure when cause I code on my free time.

<!-- gh-comment-id:443804259 --> @mageddo commented on GitHub (Dec 3, 2018): @hgross I already did some code but didn't complete, I'm working on this now and I'm planning to arm support to be released on the next DPS version, not sure when cause I code on my free time.
Author
Owner

@mageddo commented on GitHub (Dec 3, 2018):

<!-- gh-comment-id:443827034 --> @mageddo commented on GitHub (Dec 3, 2018): * [A list of all supported go archs](https://golang.org/doc/install/source#environment) * Actually I'm using bash for the automation, maybe I should consider use gradle for this * https://github.com/BreadMoirai/github-release-gradle-plugin * https://github.com/trnl/github-release-gradle-plugin
Author
Owner

@mageddo commented on GitHub (Dec 4, 2018):

Version 2.10.3 were just released supporting ARM arch, here instructions of how build your specific arch manually.

Can someone give it a test and check if ARM images works?

<!-- gh-comment-id:443948004 --> @mageddo commented on GitHub (Dec 4, 2018): Version [2.10.3](https://github.com/mageddo/dns-proxy-server/releases/tag/2.10.3) were just released supporting ARM arch, [here instructions](https://github.com/mageddo/dns-proxy-server/blob/master/docs/developing/Compiling-the-project-from-source.md#building-binary-for-specific-arch) of how build your specific arch manually. Can someone give it a test and check if ARM images works?
Author
Owner

@mageddo commented on GitHub (Dec 4, 2018):

DPS is builting arm docker images as well, take a look at docker hub

<!-- gh-comment-id:444076754 --> @mageddo commented on GitHub (Dec 4, 2018): DPS is builting arm docker images as well, take a look at docker hub
Author
Owner

@hgross commented on GitHub (Dec 4, 2018):

Awesome, just tested it on a Raspberry Pi 3 B+ and it works as expected.
Regarding Gradle - I can only recommend it.
We use it a lot (also with docker, check out https://github.com/palantir/gradle-docker) and are happy with it.

<!-- gh-comment-id:444260738 --> @hgross commented on GitHub (Dec 4, 2018): Awesome, just tested it on a Raspberry Pi 3 B+ and it works as expected. Regarding Gradle - I can only recommend it. We use it a lot (also with docker, check out https://github.com/palantir/gradle-docker) and are happy with it.
Author
Owner

@mageddo commented on GitHub (Dec 5, 2018):

Ok, I'll mark it as done. If you have some issue feel free to start a talk

<!-- gh-comment-id:444573361 --> @mageddo commented on GitHub (Dec 5, 2018): Ok, I'll mark it as done. If you have some issue feel free to start a talk
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/dns-proxy-server-mageddo#38
No description provided.