Problem
I am trying to create a docker image using a Haskell application inside. however resolving the domain name of the hostnames of other containers on the network in my application inside the docker container fails (but I can wget
/ ping
other containers and their hostnames are correctly resolved).
To find the root cause, I tried to resolve the host names manually (using the package Network.DNS
) and use only the IP addresses in servant-client
. However, this gives just a critical error message:
Network.BSD.getProtocolByName: does not exist (no such protocol name: udp)
I think I am missing some packages inside my docker image. I tried to install libc6-compat
, but without success ( libc6
from Debian I was used to compile the Haskell application). Moreover, it /etc/protocols
contains the correct entries. What else is missing in the docker image?
Docker Images
The docker image that I use to run the application alpine:3.6
is the entire docker file, there is not much in it . This is a different image than used to create the application (it is 20 times smaller).
The docker image that I use to create the haskell application is based on debian:stretch
. Dockerfile .
All source code with assembly instructions is available here (the Angular part may be skipped):
https://github.com/carbolymer/blockchain/tree/0b041875f71b2a09dc8568ee7b0cc22460fd5624