Cannot run passbolt from docker

Hello,

I am using the command below. From the shell I can see it connects to the database successfully. But then I see following error with nginx. Can someone help please?

nginx: [emerg] socket() [::]:443 failed (97: Address family not supported by protocol)
2021-10-08 11:43:31,244 INFO exited: nginx (exit status 1; not expected)
2021-10-08 11:43:34,249 INFO spawned: 'nginx' with pid 175
nginx: [emerg] socket() [::]:443 failed (97: Address family not supported by protocol)
2021-10-08 11:43:34,273 INFO exited: nginx (exit status 1; not expected)
2021-10-08 11:43:35,274 INFO gave up: nginx entered FATAL state, too many start retries too quickly

command to run the passbolt:

docker run --name passbolt \
             -v passbolt_images:/usr/share/php/passbolt/webroot/img \
             -p 443:443 \
             -p 80:80 \
             -e DATASOURCES_DEFAULT_HOST=10.86.3.253 \
             -e DATASOURCES_DEFAULT_PASSWORD=**** \
             -e DATASOURCES_DEFAULT_USERNAME=root \
             -e DATASOURCES_DEFAULT_DATABASE=passbolt \
             -e APP_FULL_BASE_URL=https://happyurl.com \
             passbolt/passbolt:latest-ce

Tested also with the docker-compose command as described in the tutorial but not working either. The same error.

Hi @Anton :wave: and welcome to Passbolt community forum :handshake:

On which operating system are you running your docker containers ? It seems IPv6 support is disabled here, that’s why you got this error.

A quick way to check this can be running this command:

sudo sysctl -a | grep disable_ipv6

It should return 0 :slight_smile:

Hello,

thank you for your reply. Its Red Hat Enterprise Linux Server release 7.9 (Maipo).

running it doenst return anything. Trying to grep just ‘ipv6’ nothing either:
[hello@world ~]$ sudo sysctl -a | grep ipv6
[hello@world ~]$

Looks like IPv6 listening was enabled due to bug report in GIT Nginx is not correctly configured for IPv6 · Issue #4 · passbolt/passbolt_install_scripts · GitHub

Is there any way to disable this in ngnix through the docker env variables?
Thanks

It seems ipv6 disabled on your OS. If you run this command, do you see any “inet6” like me?

$ ip a | grep inet
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
    inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0
    inet6 fe80::a00:27ff:fe41:ef8f/64 scope link
    inet 10.55.27.13/24 brd 10.55.27.255 scope global eth1
    inet6 fe80::a00:27ff:fee8:3947/64 scope link
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0

Even if your RedHat is not reachable through IPv6, IPv6 support should be there, unless it has been disabled.

IPv6 can be disabled through grub too:

# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="ipv6.disable=0 crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"

And to answer to your question, you can’t disable IPv6 through environment variables, you have to bind mount the same nginx configuration file than the one in the docker container without the “[::]:443” ipv6 support if you want to disable it.

Hello,

so the IPV6 was disabled in the GRUB settings… Thanks a lot _jc for your help!

1 Like

Thanks for the feedback ! :slight_smile: