Search code examples
dockercontainersibm-cloudlogentries

Bluemix Container status reads 'Networking'


I am attempting to setup a container on Bluemix that accepts UDP traffic and forwards it using a TCP connection to Logentries. When running the container locally, I used NetCat to simulate UDP traffic and saw it successfully displayed at the destination of the TCP connection.

However, when I attempt to start a container based off the same image with Bluemix containers service, the container remains stuck in a 'Networking' state and no data is transmitted to the destination. The logs only print a warning about the version listed in the syslog-ng.conf file (same warning when ran locally), and inspection of the container by command cf ic inspect <container-id> returns the following portion about the Networking state:

"Path": "date",
"ResolvConfPath": "/etc/resolv.conf",
"State": {
    "ExitCode": 0,
    "FinishedAt": "0001-01-01T00:00:00Z",
    "Ghost": "",
    "Pid": 1,
    "Running": true,
    "StartedAt": "2015-10-14T19:45:43.000000000Z",
    "Status": "Networking"
},

One thing to note is that I had to change the nameserver to 8.8.8.8 (Google's DNS) for necessary domain name resolution, due to the following error:

Error resolving hostname; host='data.logentries.com'
Error initializing message pipeline;
Error resolving hostname; host='data.logentries.com'
Error initializing message pipeline;

You can find the source code of the Docker image I originally adopted at https://github.com/oinopion/syslog-ng-logentries.

So my questions are:

  1. What does the 'Networking' state of a Bluemix container mean?
  2. Why does my container work locally but not on Bluemix?

Solution

  • Docker containers on Bluemix doesn't support incoming UDP traffic routing yet. This feature is already planned for future updates as far as I know. This is the reason your container works fine locally, but remotely doesn't receive traffic.