ajpierce / ib_tws_docker Goto Github PK
View Code? Open in Web Editor NEWA Docker container for running a headless Interactive Brokers' TWS instance whose API is exposed on port 4001
A Docker container for running a headless Interactive Brokers' TWS instance whose API is exposed on port 4001
Hi
the base image orgsync/java8
is gone from docker hub. Looks like orgsync moved all of their images to a private repo at quay.io.
related:
https://github.com/orgsync/docker-java/blob/master/Dockerfile
https://quay.io/repository/orgsync/java?tag=latest&tab=tags
workaround:
index 8fbf951..44a601d 100644
--- i/Dockerfile
+++ w/Dockerfile
@@ -1,7 +1,7 @@
#############################################################
# Dockerfile to build Interactive Broker TWS container images
#############################################################
-FROM orgsync/java8
+FROM quay.io/orgsync/java:1.8.0_66-b17
However maybe it's better to "in-source" the mentioned java dockerfile and switch to the official debian (or ubuntu) base image.
I got this... any ideas? Thanks!@
tws_1 | ------------------------------------------------------------
tws_1 | 14:00:15:551 IBController: ini file is /opt/IBController/IBController.ini
tws_1 | 14:00:15:558 IBController: IBControllerServer is started.
tws_1 | 14:00:15:597 IBController: IBControllerServer listening on address: 6da1e54c69d3/172.17.0.2 port: 7462
tws_1 | 14:00:15:614 IBController: TWS settings directory is /opt/IBJts/jars
tws_1 | Exception in thread "main" java.lang.NoClassDefFoundError: jclient/LoginFrame
tws_1 | at ibcontroller.IBController.startTws(Unknown Source)
tws_1 | at ibcontroller.IBController.startTwsOrGateway(Unknown Source)
tws_1 | at ibcontroller.IBController.load(Unknown Source)
tws_1 | at ibcontroller.IBController.main(Unknown Source)
tws_1 | Caused by: java.lang.ClassNotFoundException: jclient.LoginFrame
tws_1 | at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
tws_1 | at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
tws_1 | at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
tws_1 | at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
I never get the "22:05:48:797 JTS-SocketListener-60: API server sarting to listening on port 4001" message, and am unable to connect to the API when I try from my python code. The log --
Starting virtual X frame buffer: Xvfb.
/opt/ib/IBJts /
java.runtime.name = OpenJDK Runtime Environment
sun.boot.library.path = /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64
java.vm.version = 24.79-b02
java.vm.vendor = Oracle Corporation
java.vendor.url = http://java.oracle.com/
path.separator = :
java.vm.name = OpenJDK 64-Bit Server VM
file.encoding.pkg = sun.io
user.country = US
sun.java.launcher = SUN_STANDARD
sun.os.patch.level = unknown
java.vm.specification.name = Java Virtual Machine Specification
user.dir = /opt/ib/IBJts
java.runtime.version = 1.7.0_79-b14
java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment
java.endorsed.dirs = /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/endorsed
os.arch = amd64
java.io.tmpdir = /tmp
line.separator =
java.vm.specification.vendor = Oracle Corporation
os.name = Linux
sun.jnu.encoding = ANSI_X3.4-1968
java.library.path = /usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
java.specification.name = Java Platform API Specification
java.class.version = 51.0
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
os.version = 4.0.7-boot2docker
user.home = /root
user.timezone = Etc/UTC
java.awt.printerjob = sun.print.PSPrinterJob
file.encoding = ANSI_X3.4-1968
java.specification.version = 1.7
java.class.path = jts.jar:total.2013.jar:/opt/ib/IBController//IBController.jar
user.name = root
java.vm.specification.version = 1.7
sun.java.command = ibcontroller.IBController /opt/ib/IBController/IBController.ini
java.home = /usr/lib/jvm/java-7-openjdk-amd64/jre
sun.arch.data.model = 64
user.language = en
java.specification.vendor = Oracle Corporation
awt.toolkit = sun.awt.X11.XToolkit
java.vm.info = mixed mode
java.version = 1.7.0_79
java.ext.dirs = /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext:/usr/java/packages/lib/ext
sun.boot.class.path = /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rhino.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jfr.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/classes
java.vendor = Oracle Corporation
file.separator = /
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
sun.io.unicode.encoding = UnicodeLittle
sun.cpu.endian = little
21:41:41:767 IBController: ini file is /opt/ib/IBController/IBController.ini
21:41:41:774 IBController: IBControllerServer is started.
21:41:41:777 IBController: TWS will be shut down at 2015/07/24 22:00
21:41:41:847 IBController: IBControllerServer listening on address: c5f86ef60b49/172.17.0.1 port: 4008
21:41:42:948 JTS-Main: dayInit: new values: dayOfTheWeek: 6 (Fri), YYYYMMofToday: 201507, YYYYMMDDofToday: 20150724
21:41:43:509 JTS-Main: getFileFromUrl: dest=/opt/ib/locales.jar empty sourceSize=61859
21:41:44:966 JTS-Main: Build 950.2g, May 19, 2015 5:52:50 PM
21:41:46:728 JTS-AuthDispatcherS1-10: NS_AUTH_START version=11 pwd=1 soft=0 token=0 tokenSubtype=0 initialTokenType=PWD authenticationType=MARKET_DATA_CONNECTION identityHashcode=1418927216
21:41:46:806 JTS-AuthDispatcherS1-10: setting session token in AuthenticationHandler: authenticationType=MARKET_DATA_CONNECTION hashCode=1418927216 new=1073945189276027629452127149871781378272968588825 old=null ctciOld=null
21:41:47:067 AWT-EventQueue-0: Competition ip: 52.1.251.216
21:41:47:329 JTS-PostAuthenticateS1-18: pre-logon message successfully sent
21:41:47:130 AWT-EventQueue-0: getFileFromUrl: dest=/opt/ib/dljynxstm/language.jar empty sourceSize=3051015
21:41:50:799 JTS-LogonDispatcherS1-24: local timestamp = Wed Dec 31 23:59:59 UTC 1969
21:41:54:450 JTS-LogonDispatcherS1-24: Warning: can't find static toolbar item with filename news
21:41:47:601 AWT-EventQueue-0: Market rule file /opt/ib/dljynxstm/Fri.rul does not exist or is removed
21:41:47:754 JTS-Splash-39: Warning: can't find static toolbar item with filename news
21:41:48:901 AWT-EventQueue-0: Could not read from resetTime.dat file - java.io.FileNotFoundException: /opt/ib/dljynxstm/resetTime.dat (No such file or directory)
21:41:59:016 JTS-CCPDispatcherS1-35: missing or improperly formatted OATS reporting time: null
21:41:59:024 JTS-HotBackupStatusManager-ProbeThread-45: JTS-HotBackupStatusManager-ProbeThread-45 Starting URLs probing:[gdc1_hb1.ibllc.com:4000]
21:41:59:115 JTS-usfarmDispatcherS2-48: NS_AUTH_START version=7 pwd=0 soft=2 token=0 tokenSubtype=0 initialTokenType=SOFT authenticationType=FARM_AUTH identityHashcode=81121313
21:41:59:188 JTS-HotBackupStatusManager-ProbeThread-45: JTS-HotBackupStatusManager-ProbeThread-45 Probing finished for URLs:[gdc1_hb1.ibllc.com:4000] Waiting to continue for 30s
21:41:59:338 JTS-CCPDispatcherS1-35: No defaults for: CMDTY
21:42:03:899 JTS-NewsDownloader-58: getFileFromUrl: dest=/opt/ib/rss.xml empty sourceSize=1759
21:42:04:318 AWT-EventQueue-0: Fetching available slot: 1; for factory: trader.tab.f
21:42:04:320 AWT-EventQueue-0: Fetching available slot: 0; for factory: trader.permticket.b
21:42:04:321 AWT-EventQueue-0: Fetching available slot: 2; for factory: trader.tab.f
21:42:04:342 AWT-EventQueue-0: Warning: no order column with colId 3055
21:42:04:350 AWT-EventQueue-0: Fetching available slot: 3; for factory: trader.tab.f
21:42:04:364 AWT-EventQueue-0: Fetching available slot: 0; for factory: trader.common.factory.sb
21:42:04:391 AWT-EventQueue-0: Fetching available slot: 4; for factory: trader.tab.f
21:42:04:398 AWT-EventQueue-0: Fetching available slot: 5; for factory: trader.tab.f
21:42:04:410 AWT-EventQueue-0: Changing configuration key for Main Window|0 to MainFrame|6
21:42:04:411 AWT-EventQueue-0: Z order changed from Main Window|0,JTS_BASE_DIALOG|2 to MainFrame|6,JTS_BASE_DIALOG|2
21:42:06:436 AWT-EventQueue-0: Set account = null
21:42:07:088 AWT-EventQueue-0: Error: attempt to restore tab frame without content: configuration=WindowParameters m_namePrimary [MainFrame] m_nameSecondary [6] m_restoreWindow [true] m_maximized [false] m_minimized [false] m_onTop [false] m_width [1150] m_height [668] m_x [772] m_y [34] m_extendedConfiguration [{Pages=TabPaneConfiguration: m_selectedTab [1] , vsplit=jsetting.SplitConfiguration@2c3cddf6}] m_contents [[]] m_contentsList [null], frame=jclient.nbb[frame5,772,34,1150x668,invalid,hidden,layout=java.awt.BorderLayout,title=,resizable,normal,defaultCloseOperation=DO_NOTHING_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
21:42:07:482 AWT-EventQueue-0: Warning: portfolio page refreshed but portfolio not loaded
21:42:08:098 JTS-GC-2: restart gc timer
21:42:09:569 JTS-ForwardRouting-MARKET_DATA-54: handleCompatibleRouting MARKET_DATA compmode=true ready=false farm=usfarm
21:42:09:629 JTS-ushmdsDispatcherS4-73: NS_AUTH_START version=7 pwd=0 soft=2 token=0 tokenSubtype=0 initialTokenType=SOFT authenticationType=FARM_AUTH identityHashcode=3456466
21:42:07:087 JTS-ForwardRouting-HISTORICAL_DATA-80: handleCompatibleRouting HISTORICAL_DATA compmode=true ready=false farm=ushmds
21:42:07:110 JTS-CCPDispatcherS1-35: Error: no sec def for returned for 46460134/SMART
21:42:07:116 JTS-CCPDispatcherS1-35: Error: no sec def for returned for 136905353/SMART
21:42:07:117 JTS-CCPDispatcherS1-35: Error: no sec def for returned for 56538702/SMART
21:42:08:379 JTS-CCPDispatcherS1-35: ec array query rejected count:4 msg:no sec defs returned forSecDef reqId=ArConidExchangePairsReqByConid12
21:42:08:395 JTS-CCPDispatcherS1-35: ec array query rejected count:5 msg:no sec defs returned forSecDef reqId=ArConidExchangePairsReqByConid13
21:42:09:882 JTS-usoptDispatcherS5-96: NS_AUTH_START version=7 pwd=0 soft=2 token=0 tokenSubtype=0 initialTokenType=SOFT authenticationType=FARM_AUTH identityHashcode=421595681
21:42:10:694 JTS-SSO result notifier-102: Returned real url from web server http://risk.interactivebrokers.com/WebFilter/PriceScan
21:42:11:093 JTS-cashfarmDispatcherS7-110: NS_AUTH_START version=7 pwd=0 soft=2 token=0 tokenSubtype=0 initialTokenType=SOFT authenticationType=FARM_AUTH identityHashcode=1307910307
21:42:11:098 JTS-usfarm.usDispatcherS6-105: NS_AUTH_START version=7 pwd=0 soft=2 token=0 tokenSubtype=0 initialTokenType=SOFT authenticationType=FARM_AUTH identityHashcode=1108904359
21:42:26:449 JTS-HotBackupStatusManager-ProbeThread-45: JTS-HotBackupStatusManager-ProbeThread-45 Probing finished for URLs:[gdc1_hb1.ibllc.com:4000]
21:44:09:339 JTS-CommonScheduler-61: Disconnecting cashfarm when checking activity
21:44:09:347 JTS-CommonScheduler-61: Disconnecting usfarm.us when checking activity
21:48:47:643 JTS-CCPPingS1-25: Warning: not received heartbeat at 420000 elapsed:11000
This should be as simple as updating a URL in the Dockerfile, and is a prerequisite to restoring IBController functionality.
I am getting the following issue on running the build command:
Finishing installation ...
mv: cannot stat '/root/Jts/954': No such file or directory
ERROR: Service 'tws' failed to build: The command '/bin/sh -c cd /tmp && wget https://github.com/ib-controller/ib-controller/releases/download/2.14.0/IBController-2.14.0.zip && unzip IBController-2.14.0.zip -d /opt/IBController && wget https://download2.interactivebrokers.com/installers/tws/latest-standalone/tws-latest-standalone-linux-x64.sh && chmod +x tws-latest-standalone-linux-x64.sh && echo "n" | ./tws-latest-standalone-linux-x64.sh && rm -rf /tmp/* && mv /root/Jts/954 /opt/IBJts' returned a non-zero code: 1
Any ideas/help would be highly appreciated.
Thanks
The prerequisite to this task is #4; according to #2 (comment), IBController is not playing nicely with TWS. Upgrading TWS to the latest stable version, and then updating IBController, should solve the issue
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.