From 1b980d2eefe142ea2bbdfa7ab120cea257dba52c Mon Sep 17 00:00:00 2001 From: Jan David Mol <mol@astron.nl> Date: Mon, 14 Feb 2022 15:51:24 +0100 Subject: [PATCH] L2SS-621: Install our dependencies in the image to speed up the device start, and to avoid redownloading the dependencies a lot when testing/debugging a device. Do recheck the dependencies when we start the containwr. --- bin/start-ds.sh | 2 +- docker-compose/device-apsct.yml | 3 ++- docker-compose/device-apspu.yml | 3 ++- docker-compose/device-beam.yml | 3 ++- docker-compose/device-boot.yml | 3 ++- docker-compose/device-docker.yml | 3 ++- docker-compose/device-observation_control.yml | 3 ++- docker-compose/device-recv.yml | 3 ++- docker-compose/device-sdp.yml | 3 ++- docker-compose/device-sst.yml | 3 ++- docker-compose/device-unb2.yml | 3 ++- docker-compose/device-xst.yml | 3 ++- docker-compose/lofar-device-base.yml | 3 ++- docker-compose/lofar-device-base/Dockerfile | 9 ++++++--- 14 files changed, 31 insertions(+), 16 deletions(-) diff --git a/bin/start-ds.sh b/bin/start-ds.sh index a48b0b455..948582020 100755 --- a/bin/start-ds.sh +++ b/bin/start-ds.sh @@ -35,7 +35,7 @@ else mkdir -p /tmp/tangostationcontrol python3 setup.py build --build-base /tmp/tangostationcontrol egg_info --egg-base /tmp/tangostationcontrol bdist_wheel --dist-dir /tmp/tangostationcontrol || exit 1 # shellcheck disable=SC2012 - sudo pip install --force-reinstall "$(ls -Art /tmp/tangostationcontrol/*.whl | tail -n 1)" + sudo pip install "$(ls -Art /tmp/tangostationcontrol/*.whl | tail -n 1)" fi # Return to the stored the directory, this preserves the working_dir argument in diff --git a/docker-compose/device-apsct.yml b/docker-compose/device-apsct.yml index a23e8a0a1..b23c2f411 100644 --- a/docker-compose/device-apsct.yml +++ b/docker-compose/device-apsct.yml @@ -18,7 +18,8 @@ services: # build explicitly, as docker-compose does not understand a local image # being shared among services. build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-apsct diff --git a/docker-compose/device-apspu.yml b/docker-compose/device-apspu.yml index 9fbdda2ce..f8c4c6718 100644 --- a/docker-compose/device-apspu.yml +++ b/docker-compose/device-apspu.yml @@ -18,7 +18,8 @@ services: # build explicitly, as docker-compose does not understand a local image # being shared among services. build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-apspu diff --git a/docker-compose/device-beam.yml b/docker-compose/device-beam.yml index 4b765f96a..6a276157f 100644 --- a/docker-compose/device-beam.yml +++ b/docker-compose/device-beam.yml @@ -13,7 +13,8 @@ services: # build explicitly, as docker-compose does not understand a local image # being shared among services. build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${DOCKER_REGISTRY_HOST}/${DOCKER_REGISTRY_USER}-tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-beam diff --git a/docker-compose/device-boot.yml b/docker-compose/device-boot.yml index abbce963a..339b88f4d 100644 --- a/docker-compose/device-boot.yml +++ b/docker-compose/device-boot.yml @@ -17,7 +17,8 @@ services: # build explicitly, as docker-compose does not understand a local image # being shared among services. build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-boot diff --git a/docker-compose/device-docker.yml b/docker-compose/device-docker.yml index ae73d963d..7cb990b97 100644 --- a/docker-compose/device-docker.yml +++ b/docker-compose/device-docker.yml @@ -18,7 +18,8 @@ services: # build explicitly, as docker-compose does not understand a local image # being shared among services. build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-docker diff --git a/docker-compose/device-observation_control.yml b/docker-compose/device-observation_control.yml index 2a77d0e5c..3887560cd 100644 --- a/docker-compose/device-observation_control.yml +++ b/docker-compose/device-observation_control.yml @@ -17,7 +17,8 @@ services: # build explicitly, as docker-compose does not understand a local image # being shared among services. build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-observation_control diff --git a/docker-compose/device-recv.yml b/docker-compose/device-recv.yml index 0a42904ce..0c4741ca4 100644 --- a/docker-compose/device-recv.yml +++ b/docker-compose/device-recv.yml @@ -18,7 +18,8 @@ services: # build explicitly, as docker-compose does not understand a local image # being shared among services. build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-recv diff --git a/docker-compose/device-sdp.yml b/docker-compose/device-sdp.yml index 1f3967d65..0e54304ed 100644 --- a/docker-compose/device-sdp.yml +++ b/docker-compose/device-sdp.yml @@ -18,7 +18,8 @@ services: # build explicitly, as docker-compose does not understand a local image # being shared among services. build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-sdp diff --git a/docker-compose/device-sst.yml b/docker-compose/device-sst.yml index 4e600ef41..10057ee96 100644 --- a/docker-compose/device-sst.yml +++ b/docker-compose/device-sst.yml @@ -18,7 +18,8 @@ services: # build explicitly, as docker-compose does not understand a local image # being shared among services. build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-sst diff --git a/docker-compose/device-unb2.yml b/docker-compose/device-unb2.yml index 3939635b2..c5cda2494 100644 --- a/docker-compose/device-unb2.yml +++ b/docker-compose/device-unb2.yml @@ -18,7 +18,8 @@ services: # build explicitly, as docker-compose does not understand a local image # being shared among services. build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-unb2 diff --git a/docker-compose/device-xst.yml b/docker-compose/device-xst.yml index e2cfd8c7d..cb7ec371e 100644 --- a/docker-compose/device-xst.yml +++ b/docker-compose/device-xst.yml @@ -18,7 +18,8 @@ services: # build explicitly, as docker-compose does not understand a local image # being shared among services. build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}device-xst diff --git a/docker-compose/lofar-device-base.yml b/docker-compose/lofar-device-base.yml index dddd50c9a..da0a0c5a9 100644 --- a/docker-compose/lofar-device-base.yml +++ b/docker-compose/lofar-device-base.yml @@ -17,7 +17,8 @@ services: lofar-device-base: image: lofar-device-base build: - context: lofar-device-base + context: .. + dockerfile: docker-compose/lofar-device-base/Dockerfile args: SOURCE_IMAGE: ${LOCAL_DOCKER_REGISTRY_HOST}/${LOCAL_DOCKER_REGISTRY_USER}/tango-itango:${TANGO_ITANGO_VERSION} container_name: ${CONTAINER_NAME_PREFIX}lofar-device-base diff --git a/docker-compose/lofar-device-base/Dockerfile b/docker-compose/lofar-device-base/Dockerfile index f81445d20..9897528c5 100644 --- a/docker-compose/lofar-device-base/Dockerfile +++ b/docker-compose/lofar-device-base/Dockerfile @@ -3,17 +3,20 @@ FROM ${SOURCE_IMAGE} RUN sudo apt-get update && sudo apt-get install -y git && sudo apt-get clean -COPY lofar-requirements.txt /lofar-requirements.txt +COPY docker-compose/lofar-device-base/lofar-requirements.txt /lofar-requirements.txt RUN sudo pip3 install -r /lofar-requirements.txt +COPY tangostationcontrol/requirements.txt /tangostationcontrol-requirements.txt +RUN sudo pip3 install -r /tangostationcontrol-requirements.txt + # install and use ephimerides and geodetic ("measures") tables for casacore. # we install a _stub_ since the tables need to be deployed explicitly from within the software. RUN sudo mkdir -p /opt/IERS && sudo chmod a+rwx /opt/IERS ARG IERS_DIRNAME=IERS-1970-01-01T00:00:00-stub -COPY WSRT_Measures_stub /opt/IERS/${IERS_DIRNAME} +COPY docker-compose/lofar-device-base/WSRT_Measures_stub /opt/IERS/${IERS_DIRNAME} RUN ln -sfT /opt/IERS/${IERS_DIRNAME} /opt/IERS/current -COPY casarc /home/tango/.casarc +COPY docker-compose/lofar-device-base/casarc /home/tango/.casarc ENV TANGO_LOG_PATH=/var/log/tango RUN sudo mkdir -p /var/log/tango && sudo chmod a+rwx /var/log/tango -- GitLab