Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions .github/workflows/detect-releases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,14 @@ jobs:
- name: Download
if: ${{ steps.check-update.outputs.has_update == 'true' }}
run: |
download_url='https://download2.interactivebrokers.com/installers/ibgateway/${{ matrix.channel }}-standalone/ibgateway-${{ matrix.channel }}-standalone-linux-x64.sh'
dest='ibgateway-${{ steps.version.outputs.build_version }}-standalone-linux-x64.sh'
curl -sSL "$download_url" --output "$dest"
sha256sum "$dest" > "${dest}.sha256"
archs="x64 arm"
for arch in $archs
do
download_url="https://download2.interactivebrokers.com/installers/ibgateway/${{ matrix.channel }}-standalone/ibgateway-${{ matrix.channel }}-standalone-linux-${arch}.sh"
dest="ibgateway-${{ steps.version.outputs.build_version }}-standalone-linux-${arch}.sh"
curl -sSL "$download_url" --output "$dest"
sha256sum "$dest" > "${dest}.sha256"
done

- name: Create release
if: ${{ steps.check-update.outputs.has_update == 'true' }}
Expand Down
31 changes: 12 additions & 19 deletions Dockerfile.template
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,10 @@ ENV IB_GATEWAY_VERSION=$VERSION
ENV IB_GATEWAY_CHANNEL=$CHANNEL
ENV IBC_VERSION=3.23.0
ARG DEBIAN_FRONTEND=noninteractive
ARG IB_GATEWAY_FILE="ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh"
ARG IB_GATEWAY_REPO="https://github.com/gnzsnz/ib-gateway-docker"
ARG IB_GATEWAY_URL="${IB_GATEWAY_REPO}/releases/download/ibgateway-${IB_GATEWAY_CHANNEL}%40${IB_GATEWAY_VERSION}/${IB_GATEWAY_FILE}"
ARG IBC_FILE="IBCLinux-${IBC_VERSION}.zip"
ARG IBC_REPO="https://github.com/IbcAlpha/IBC"
ARG IBC_URL="${IBC_REPO}/releases/download/${IBC_VERSION}/${IBC_FILE}"
ARG ZULU_NAME=zulu17.60.17-ca-fx-jre17.0.16-linux_aarch64
ARG ZULU_FILE=${ZULU_NAME}.tar.gz
ARG ZULU_URL=https://cdn.azul.com/zulu/bin/${ZULU_FILE}

WORKDIR /tmp/setup

Expand All @@ -31,26 +26,24 @@ RUN apt-get update -y && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
if [ "$(uname -m)" = "aarch64" ]; then \
curl -sSLO ${ZULU_URL} ; \
tar -xzf ${ZULU_FILE} -C /usr/local/ ; \
ln -s /usr/local/${ZULU_NAME} /usr/local/zulu17 ; \
ARCH="arm" ; \
else \
ARCH="x64" ; \
fi && \
IB_GATEWAY_FILE="ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-${ARCH}.sh" && \
IB_GATEWAY_URL="${IB_GATEWAY_REPO}/releases/download/ibgateway-${IB_GATEWAY_CHANNEL}%40${IB_GATEWAY_VERSION}/${IB_GATEWAY_FILE}" && \
# Install IB Gateway
# Use this instead of "RUN curl .." to install a local file:
#COPY ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh .
curl -sSOL ${IB_GATEWAY_URL} && \
curl -sSOL ${IB_GATEWAY_URL}.sha256 && \
sha256sum --check ./${IB_GATEWAY_FILE}.sha256 &&\
chmod a+x ./${IB_GATEWAY_FILE} && \
if [ "$(uname -m)" = "aarch64" ]; then \
app_java_home=/usr/local/zulu17 ./${IB_GATEWAY_FILE} -q -dir /root/Jts/ibgateway/${IB_GATEWAY_VERSION} ; \
else \
./${IB_GATEWAY_FILE} -q -dir /root/Jts/ibgateway/${IB_GATEWAY_VERSION} ; \
fi && \
curl -sSOL "${IB_GATEWAY_URL}" && \
curl -sSOL "${IB_GATEWAY_URL}.sha256" && \
sha256sum --check "./${IB_GATEWAY_FILE}.sha256" &&\
chmod a+x "./${IB_GATEWAY_FILE}" && \
"./${IB_GATEWAY_FILE}" -q -dir "/root/Jts/ibgateway/${IB_GATEWAY_VERSION}" && \
# Install IBC
curl -sSOL ${IBC_URL} && \
curl -sSOL "${IBC_URL}" && \
mkdir /root/ibc && \
unzip ./${IBC_FILE} -d /root/ibc && \
unzip "./${IBC_FILE}" -d /root/ibc && \
chmod -R u+x /root/ibc/*.sh && \
chmod -R u+x /root/ibc/scripts/*.sh

Expand Down
33 changes: 13 additions & 20 deletions latest/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,45 +12,38 @@ ENV IB_GATEWAY_VERSION=10.46.1g
ENV IB_GATEWAY_CHANNEL=latest
ENV IBC_VERSION=3.23.0
ARG DEBIAN_FRONTEND=noninteractive
ARG IB_GATEWAY_FILE="ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh"
ARG IB_GATEWAY_REPO="https://github.com/gnzsnz/ib-gateway-docker"
ARG IB_GATEWAY_URL="${IB_GATEWAY_REPO}/releases/download/ibgateway-${IB_GATEWAY_CHANNEL}%40${IB_GATEWAY_VERSION}/${IB_GATEWAY_FILE}"
ARG IBC_FILE="IBCLinux-${IBC_VERSION}.zip"
ARG IBC_REPO="https://github.com/IbcAlpha/IBC"
ARG IBC_URL="${IBC_REPO}/releases/download/${IBC_VERSION}/${IBC_FILE}"
ARG ZULU_NAME=zulu17.60.17-ca-fx-jre17.0.16-linux_aarch64
ARG ZULU_FILE=${ZULU_NAME}.tar.gz
ARG ZULU_URL=https://cdn.azul.com/zulu/bin/${ZULU_FILE}

WORKDIR /tmp/setup

# Prepare system
RUN apt-get update -y && \
apt-get install --no-install-recommends --yes \
apt-get install --no-install-recommends --yes && \
curl ca-certificates unzip && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* && \
if [ "$(uname -m)" = "aarch64" ]; then \
curl -sSLO ${ZULU_URL} ; \
tar -xzf ${ZULU_FILE} -C /usr/local/ ; \
ln -s /usr/local/${ZULU_NAME} /usr/local/zulu17 ; \
ARCH="arm" ; \
else \
ARCH="x64" ; \
fi && \
IB_GATEWAY_FILE="ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-${ARCH}.sh" && \
IB_GATEWAY_URL="${IB_GATEWAY_REPO}/releases/download/ibgateway-${IB_GATEWAY_CHANNEL}%40${IB_GATEWAY_VERSION}/${IB_GATEWAY_FILE}" && \
# Install IB Gateway
# Use this instead of "RUN curl .." to install a local file:
#COPY ibgateway-${IB_GATEWAY_VERSION}-standalone-linux-x64.sh .
curl -sSOL ${IB_GATEWAY_URL} && \
curl -sSOL ${IB_GATEWAY_URL}.sha256 && \
sha256sum --check ./${IB_GATEWAY_FILE}.sha256 &&\
chmod a+x ./${IB_GATEWAY_FILE} && \
if [ "$(uname -m)" = "aarch64" ]; then \
app_java_home=/usr/local/zulu17 ./${IB_GATEWAY_FILE} -q -dir /root/Jts/ibgateway/${IB_GATEWAY_VERSION} ; \
else \
./${IB_GATEWAY_FILE} -q -dir /root/Jts/ibgateway/${IB_GATEWAY_VERSION} ; \
fi && \
curl -sSOL "${IB_GATEWAY_URL}" && \
#curl -sSOL ${IB_GATEWAY_URL}.sha256 && \
#sha256sum --check ./${IB_GATEWAY_FILE}.sha256 &&\
chmod a+x "./${IB_GATEWAY_FILE}" && \
"./${IB_GATEWAY_FILE}" -q -dir "/root/Jts/ibgateway/${IB_GATEWAY_VERSION}" && \
# Install IBC
curl -sSOL ${IBC_URL} && \
curl -sSOL "${IBC_URL}" && \
mkdir /root/ibc && \
unzip ./${IBC_FILE} -d /root/ibc && \
unzip "./${IBC_FILE}" -d /root/ibc && \
chmod -R u+x /root/ibc/*.sh && \
chmod -R u+x /root/ibc/scripts/*.sh

Expand Down
4 changes: 3 additions & 1 deletion latest/Dockerfile.tws
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
# hadolint global ignore=DL3008

ARG IB_VERSION=10.46.1g
FROM ghcr.io/gnzsnz/ib-gateway:${IB_VERSION} AS setup
#FROM ghcr.io/gnzsnz/ib-gateway:${IB_VERSION} AS setup
FROM ghcr.io/gnzsnz/ib-gateway:latest-arm AS setup


WORKDIR /

Expand Down
5 changes: 4 additions & 1 deletion template_README.md
Original file line number Diff line number Diff line change
Expand Up @@ -579,7 +579,10 @@ value in seconds defined in `SSH_RESTART`.

## aarch64 support

This is experimental, so expects bugs.
IBKR's has started releasing an installer for `linux-arm`. And this image is
using it. While the official installer is for `ib-gateway`, we provide an TWS
image too. So please take into account that TWS image might have unexpected
bugs.

Please go to discussions section to see common problems. Avoid creating issues unless
you have empirically probed that is a bug, ie it does not work to me is not a bug.
Expand Down