So we can deploy algos by uploading them to the config dir on the server, then bouncing sparkd.
115 lines
3.8 KiB
YAML
115 lines
3.8 KiB
YAML
services:
|
|
sparkd:
|
|
volumes:
|
|
- ${SPARKD__DATA_DIR:-sparkd_data}:/home/bts/sparkdata/data
|
|
build:
|
|
dockerfile: src/app_sparkd/Dockerfile
|
|
args:
|
|
- IMAGE=${SPARKD__IMAGE}
|
|
- SOURCE_DIR=${SPARKD__SOURCE_DIR}
|
|
- CONFIG_DIR=${SPARKD__CONFIG_DIR}
|
|
- PYTHON_REQUIREMENTS=${SPARKD__PYTHON_REQUIREMENTS}
|
|
shm_size: "${SPARKD__SHM_SIZE:-512mb}"
|
|
command: >
|
|
sh -c "
|
|
echo bts | sudo -S chown -R bts:bts /home/bts/sparkdata/data
|
|
if [ -e "/home/bts/sparkdata/data/logging.sparkd/log" ]; then
|
|
mv "/home/bts/sparkdata/data/logging.sparkd/log" "/home/bts/sparkdata/data/logging.sparkd/log_$(date '+%Y%m%d-%H%M')"
|
|
fi
|
|
if [ -e "/home/bts/sparkdata/conf/.env.local" ]; then
|
|
echo 'Sourcing /home/bts/sparkdata/conf/.env.local'
|
|
set -a
|
|
. /home/bts/sparkdata/conf/.env.local
|
|
set +a
|
|
fi
|
|
if [ -d /home/bts/sparkdata/conf/plugins ]; then
|
|
echo 'Copying /home/bts/sparkdata/conf/plugins to runtime dir (/home/bts/bin)'
|
|
cp -r /home/bts/sparkdata/conf/plugins /home/bts/bin/
|
|
fi
|
|
./sparkd run"
|
|
env_file:
|
|
- .env
|
|
- ${SPARKD__CONFIG_DIR}/.env
|
|
ports:
|
|
- "${SPARKD__CONFIG_PORT}:${SPARKD__CONFIG_PORT}"
|
|
- "${SPARKD__QUICKBUS_PORT}:${SPARKD__QUICKBUS_PORT}"
|
|
- "${SPARKD__SIM_FIX_PORT}:${SPARKD__SIM_FIX_PORT}"
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: "${SPARKD__MEMORY:-4gb}"
|
|
|
|
sparkd-symbols:
|
|
volumes:
|
|
- ${SPARKD__DATA_DIR:-sparkd_data}:/home/bts/sparkdata/data
|
|
- ${SPARKD__RUNTIME_CONF_DIR:-sparkd_conf}:/home/bts/sparkdata/conf
|
|
build:
|
|
dockerfile: src/app_sparkd/Dockerfile
|
|
args:
|
|
- IMAGE=${SPARKD__IMAGE}
|
|
- SOURCE_DIR=${SPARKD__SOURCE_DIR}
|
|
- CONFIG_DIR=${SPARKD__CONFIG_DIR}
|
|
- PYTHON_REQUIREMENTS=${SPARKD__PYTHON_REQUIREMENTS}
|
|
shm_size: "${SPARKD__SHM_SIZE:-512mb}"
|
|
command: >
|
|
sh -c "
|
|
echo bts | sudo -S chown -R bts:bts /home/bts/sparkdata
|
|
if [ -e "/home/bts/sparkdata/data/logging.sparkd/log" ]; then
|
|
mv "/home/bts/sparkdata/data/logging.sparkd/log" "/home/bts/sparkdata/data/logging.sparkd/log_$(date '+%Y%m%d-%H%M')"
|
|
fi
|
|
ls -alh /home/bts/sparkdata/conf/
|
|
cat /home/bts/sparkdata/conf/.env.local
|
|
if [ -e "/home/bts/sparkdata/conf/.env.local" ]; then
|
|
echo 'Sourcing /home/bts/sparkdata/conf/.env.local'
|
|
set -a
|
|
. /home/bts/sparkdata/conf/.env.local
|
|
set +a
|
|
fi
|
|
if [ -d /home/bts/sparkdata/conf/plugins ]; then
|
|
echo 'Copying /home/bts/sparkdata/conf/plugins to runtime dir (/home/bts/bin)'
|
|
cp -r /home/bts/sparkdata/conf/plugins /home/bts/bin/
|
|
fi
|
|
./sparkd run"
|
|
env_file:
|
|
- .env
|
|
- ${SPARKD__CONFIG_DIR}/.env
|
|
ports:
|
|
- "${SPARKD__CONFIG_PORT}:${SPARKD__CONFIG_PORT}"
|
|
- "${SPARKD__QUICKBUS_PORT}:${SPARKD__QUICKBUS_PORT}"
|
|
- "${SPARKD__SIM_FIX_PORT}:${SPARKD__SIM_FIX_PORT}"
|
|
deploy:
|
|
restart_policy:
|
|
condition: any
|
|
delay: 3s
|
|
resources:
|
|
limits:
|
|
memory: "${SPARKD__MEMORY:-4gb}"
|
|
|
|
sparkd-tail:
|
|
image: bluetradingsystems/linux_dotnet7
|
|
volumes:
|
|
- type: volume
|
|
read_only: true
|
|
source: sparkd_data
|
|
target: /home/bts/sparkdata/data/logging.sparkd
|
|
volume:
|
|
subpath: logging.sparkd
|
|
command: ["tail", "-f", "/home/bts/sparkdata/data/logging.sparkd/log"]
|
|
|
|
sparkd-ping-test:
|
|
depends_on:
|
|
- sparkd
|
|
profiles:
|
|
- ping-test
|
|
build:
|
|
context: .
|
|
dockerfile_inline: |
|
|
FROM bluetradingsystems/linux_dotnet7
|
|
USER "root"
|
|
RUN apt-get update && apt-get -y install iputils-ping
|
|
command: [ "ping", "sparkd" ]
|
|
|
|
volumes:
|
|
sparkd_data:
|
|
name: "sparkd_${SPARKD__CONFIG_PORT:-8000}"
|