Docker Setup

These notes describe how containers were set up to test this package. The notes are intended as a personal reminder to myself.

With docker installed on a host PC, a redis container, an indiserver container and an indiredis container were installed on a docker network, to excercise connectivity between them.

Create a network

This creates an internal network with name indi_net:

docker network create indi_net

redis container

This creates and runs a container with name redis_server_cont running a redis database, connected to the network indi_net. The image is the standard redis image automatically pulled from the docker hub:

docker run --name redis_server_cont --network indi_net -d redis

indiserver container

In a directory, create a Dockerfile:

FROM debian:11-slim

# install dependencies
RUN apt-get update && apt-get install -y indi-bin && rm -rf /var/lib/apt/lists/*

# The app runs on port 7624
EXPOSE 7624

# and run the app
CMD ["indiserver", "indi_simulator_telescope", "indi_simulator_ccd"]

Then build the image:

docker build -t indiserver_image .

And create and run a container from this image on the network indi_net:

docker run -d --name indiserver_cont --network indi_net indiserver_image

indiredis container

In another directory, create a Dockerfile:

FROM python:latest

# install dependencies
RUN pip install --no-cache-dir indiredis

# The app runs on port 8000
EXPOSE 8000

# and set an entrypoint for the app
ENTRYPOINT ["python", "-m", "indiredis"]

Then build the image:

docker build -t indiredis_image .

And create and run a container from this image on the network indi_net:

docker run -d --name indiredis_cont --network indi_net indiredis_image --host 0.0.0.0 --rhost redis_server_cont --ihost indiserver_cont /blobfolder

The host address of 0.0.0.0 allows the web service to listen on all ports, so a web browser on the host machine can connect to it.

Inspect the network, and get the ip address of the container indiredis_cont:

docker network inspect indi_net

then from the host browser call this ip address on port 8000 to view the indi web client.