dperson / openvpn-client

GNU Affero General Public License v3.0
1.06k stars 589 forks source link

Problem with the docker build of 2021-01-15 on ARM #365

Open danstr1 opened 3 years ago

danstr1 commented 3 years ago

Hi,

I think that there might be a bug in the latest version when running on arm architecture (I use rpi 4) I see in the logs: RESOLVE: Cannot resolve host address: xxxxxx:xxx (Try again) and it try and try without success When I enter the container and run ping google.com I get ping: bad address 'google.com' When I try to do ping 127.0.0.1: ping: clock_gettime(MONOTONIC) failed And if I return to image from 2020-12-17 All is working good and the VPN is coming up I have tried to insert in the docker_compose file dns:8.8.8.8 and it didn't change nothing

If you need more information, tell me

Thanks, Dan

--

image image

darkporpoise commented 3 years ago

I may be seeing the same thing for Ubuntu 64 bit.

Configuration was working fine at least as recently as 27/12/2020.

I have tried specifying the DNS but no joy so far.

rackey12 commented 3 years ago

i have been trying to create this container for a day or two and seeing the same issue.

2071-05-22 12:55:04 Restart pause, 300 second(s), 2071-05-22 12:57:36 SIGUSR1[soft,init_instance] received, process restarting, 2071-05-22 12:52:56 Could not determine IPv4/IPv6 protocol, 2071-05-22 12:49:20 RESOLVE: Cannot resolve host address: lon-001.vpn.privado.io:1194 (Try again), 2071-05-22 12:51:28 RESOLVE: Cannot resolve host address: lon-001.vpn.privado.io:1194 (Try again)

rackey12 commented 3 years ago

Hi,

I think that there might be a bug in the latest version when running on arm architecture (I use rpi 4) I see in the logs: RESOLVE: Cannot resolve host address: xxxxxx:xxx (Try again) and it try and try without success When I enter the container and run ping google.com I get ping: bad address 'google.com' When I try to do ping 127.0.0.1: ping: clock_gettime(MONOTONIC) failed And if I return to image from 2020-12-17 All is working good and the VPN is coming up I have tried to insert in the docker_compose file dns:8.8.8.8 and it didn't change nothing

If you need more information, tell me

Thanks, Dan

--

image image

how can i use the older image as this has been driving me mad for the past 2 days and from what you are saying it is not me, at least i am hoping.

danstr1 commented 3 years ago

Hi, I think that there might be a bug in the latest version when running on arm architecture (I use rpi 4) I see in the logs: RESOLVE: Cannot resolve host address: xxxxxx:xxx (Try again) and it try and try without success When I enter the container and run ping google.com I get ping: bad address 'google.com' When I try to do ping 127.0.0.1: ping: clock_gettime(MONOTONIC) failed And if I return to image from 2020-12-17 All is working good and the VPN is coming up I have tried to insert in the docker_compose file dns:8.8.8.8 and it didn't change nothing If you need more information, tell me Thanks, Dan

image image

how can i use the older image as this has been driving me mad for the past 2 days and from what you are saying it is not me, at least i am hoping.

First you need to catch the Image ID of the previous image has been downloaded, I find it via Portainer but you can maybe use 'docker images', and after that I change to that ID in the docker compose file, in the image:xxxxx instead of image:dperson/openvpn-client to the ID of the old image

rackey12 commented 3 years ago

i think i have only downloaded the latest version so i will not be able to roll back i guess

danstr1 commented 3 years ago

So I don't know.. I hope there will be fix soon

rackey12 commented 3 years ago

So I don't know.. I hope there will be fix soon

i hope so also because its been driving me crazy not been able to get it working for days

fmoledina commented 3 years ago

To build an image based on Alpine 3.12.3 to get this working again on 32-bit ARM, proceed with the following steps:

Clone this repo

git clone https://github.com/dperson/openvpn-client.git
cd openvpn-client

Git Hook

I couldn't get the Git hook to happen automatically, so run that from the cloned directory:

export DOCKER_TAG=armhf
./hooks/post_checkout

Edit the Dockerfile.armhf as follows.

Change the first line from:

FROM arm32v6/alpine

to

FROM arm32v6/alpine:3.12.3

Build a local image

docker build -t dperson-openvpn-client:alpine3.12.3 -f Dockerfile.armhf .

Use your local image.

Replace instances of dperson/openvpn-client with dperson-openvpn-client:alpine3.12.3 in Docker run commands or docker-compose.yml files.

rackey12 commented 3 years ago
docker build -t dperson-openvpn-client:alpine3.12.3 -f Dockerfile.armhf 

i am not able to build the dockerfile i get the following

pi@Docker-Pi:~/Docker-Compose/openvpn-client $ docker build -t dperson-openvpn-client:alpine3.12.3 -f Dockerfile.armhf "docker build" requires exactly 1 argument. See 'docker build --help'.

Usage: docker build [OPTIONS] PATH | URL | -

Build an image from a Dockerfile pi@Docker-Pi:~/Docker-Compose/openvpn-client $

fmoledina commented 3 years ago

You need to to include that \<space> and \<dot> on the end so it builds from the current directory.

rackey12 commented 3 years ago

You need to to include that and on the end so it builds from the current directory.

yeah i have just seen that so i deleted the older and started and but this time i get an issue on the ./hooks/post_checkout

pi@Docker-Pi:~/Docker-Compose/openvpn-client $ ./hooks/post_checkout

gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now pi@Docker-Pi:~/Docker-Compose/openvpn-client $ docker build -t dperson-openvpn-client:alpine3.12.3 -f Dockerfile.armhf . Sending build context to Docker daemon 11.09MB Step 1/8 : FROM arm32v6/alpine:3.12.3 ---> b7b4fd378773 Step 2/8 : COPY qemu-arm-static /usr/bin/ COPY failed: file not found in build context or excluded by .dockerignore: stat qemu-arm-static: file does not exist pi@Docker-Pi:~/Docker-Compose/openvpn-client $

fmoledina commented 3 years ago

Did you do

export DOCKER_TAG=armhf

If so and it's not working, that script is used to download the following two files. As of today, the links it generates are as follows:

Download them and rename them to manifest-tool and qemu-user-static and put in the build directory with Dockerfile.armhf.

kevocl commented 3 years ago

Does anyone know why using Alpine 3.12.3 works for 32-bit ARM and the hub image doesn't work?

fmoledina commented 3 years ago

I commented on this in another issue I opened which is rooted in the same underlying issue with the Alpine 3.13 update:

After doing some digging, this is likely related to the Alpine 3.13 release and its impact on Debian-Buster-based distros on 32-bit ARM hardware (including Ubuntu 20.04). I'm using an Odroid HC2 with Ubuntu 20.04 (i.e. armhf) and that's where this issue has surfaced for me.

See the following links:

The musl-1.2 upgrade changed the definition of time_t to 64-bits on all arches. This affects armhf, armv7 and x86. See the musl time64 release notes and the wiki for more information.

mr-ransel commented 3 years ago

Specifically it looks like the fix is here: https://github.com/alpinelinux/docker-alpine/issues/135#issuecomment-762542148 -> https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.13.0#time64_requirements and it's a decidedly suboptimal fix.

Tl;dr alpine has made a change (not a bug) that raspbian straight up doesn't support yet, so you can:

Otherwise it looks like you're SOL and have to wait until raspbian updates the libseccomp package

blomsoft commented 3 years ago

I had this problem too and solved it by adding the backports repo for Debian Buster to my Docker host, see option 2 of https://docs.linuxserver.io/faq :

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138
    echo "deb http://deb.debian.org/debian buster-backports main" | sudo tee -a /etc/apt/sources.list.d/buster-backports.list
    sudo apt update
    sudo apt install -t buster-backports libseccomp2
H-Sf commented 2 years ago

To build an image based on Alpine 3.12.3 to get this working again on 32-bit ARM, proceed with the following steps:

Clone this repo

git clone https://github.com/dperson/openvpn-client.git
cd openvpn-client

Git Hook

I couldn't get the Git hook to happen automatically, so run that from the cloned directory:

export DOCKER_TAG=armhf
./hooks/post_checkout

Edit the Dockerfile.armhf as follows.

Change the first line from:

FROM arm32v6/alpine

to

FROM arm32v6/alpine:3.12.3

Build a local image

docker build -t dperson-openvpn-client:alpine3.12.3 -f Dockerfile.armhf .

Use your local image.

Replace instances of dperson/openvpn-client with dperson-openvpn-client:alpine3.12.3 in Docker run commands or docker-compose.yml files.

Thank you so much, I'm working on raspberry pi3, following this tutorial for testing a swarm overlay network and it seems that the problem is persisting. I've been stuck in this issue since three days, I just used this sudo docker run -dit --name alpine1 --network test1 alpine:3.12.3 and it worked perfectly!!! You saved me!! Thank you so much !!!!