Public | Automated Build

Last pushed: 6 months ago
Short Description
Docker image to install ib-controller AUR package
Full Description

Docker image for ib-controller

It uses the official base/archlinux and installs the ib-controller AUR package.

It exposes the 4003 port.

To customize the image, use environment variables named like the
corresponding options in the configuration .ini file with the IB_
prefix. For example, using docker compose yaml format:

services:
    ib:
        image: ibizaman/docker-ibcontroller
        environment:
            - IB_IbLoginId=username
            - IB_IbPassword=password
Docker Pull Command
Owner
ibizaman
Source Repository

Comments (5)
hamx0r
9 months ago

Good idea @nbraid! I missed your comment until now, but here's the PR: https://github.com/ibizaman/docker-ibcontroller/pull/2

nbraid
a year ago

hamx0r, I'm noticing the same issues that you are. Any chance that you could put your fixes into a pull request? https://github.com/ibizaman/docker-ibcontroller/pulls

hamx0r
a year ago

A fix to the below is to create a new Dockerfile like this:

FROM ibizaman/docker-ibcontroller
COPY start.sh /start.sh
RUN chmod a+x /start.sh
EXPOSE 4003
CMD ["/start.sh"]

(Note the new exposed port 4003)

And then use the original start.sh file, but modify the approriate line to look like this:

socat TCP-LISTEN:4003,fork TCP:127.0.0.1:4002&

(note the 4002 instead of 4001)

hamx0r
a year ago

Also if one tries to rebuild using current Dockerfile, the resulting image throws this error when running (I assume due to different TWS version)

13:38:05:630 IBController: IBControllerServer listening on address: 127.0.0.1 port: 7464
13:38:05:741 IBController: TWS settings directory is /var/run/ibcontroller/tws/conf
Exception in thread "main" java.lang.NoClassDefFoundError: ibgateway/GWClient
    at ibcontroller.IBController.startGateway(Unknown Source)
    at ibcontroller.IBController.startTwsOrGateway(Unknown Source)
    at ibcontroller.IBController.load(Unknown Source)
    at ibcontroller.IBGatewayController.main(Unknown Source)
Caused by: java.lang.ClassNotFoundException: ibgateway.GWClient
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 4 more
hamx0r
a year ago

I see socat TCP-LISTEN:4003,fork TCP:127.0.0.1:4001& in start.sh, yet the Dockerfile has EXPOSE 4001. Should this be EXPOSE 4003 so that docker will pass port 4003 traffic to the container, then socat will redirect it to 4001?

Furthermore, should Peer=cdc1.ibllc.com:4000 in jts.ini be 4001 to make this all work?