rm old docker files
parent
eb341f7fd9
commit
8963f3516d
139
DOCKER.md
139
DOCKER.md
|
@ -1,139 +0,0 @@
|
||||||
# DOCKER.md - Introduction
|
|
||||||
|
|
||||||
Sattools, stvid and strf are Unix-native tools, with complex and
|
|
||||||
specific environment requirements in order for them to operate.
|
|
||||||
|
|
||||||
The Docker environment allows you to gain access to sattools
|
|
||||||
without knowing how to install dependencies or compile source.
|
|
||||||
|
|
||||||
It has the additional benefit of being able to use the sattools
|
|
||||||
environment without affecting other environments on your computer.
|
|
||||||
|
|
||||||
The instructions below will get you running sattools in about
|
|
||||||
15 minutes.
|
|
||||||
|
|
||||||
# Setup your Docker / X-Windows environment
|
|
||||||
|
|
||||||
Mac/PC **Docker Desktop**
|
|
||||||
- Create an account and download Docker Desktop:
|
|
||||||
https://www.docker.com/products/docker-desktop
|
|
||||||
|
|
||||||
Windows:
|
|
||||||
Install **Xming X Server for Windows** - https://sourceforge.net/projects/xming/
|
|
||||||
Mac:
|
|
||||||
Install **XQuartz** - https://www.xquartz.org/ (can also install via brew)
|
|
||||||
Log out/back in as directed by the installer
|
|
||||||
|
|
||||||
Unix/Linux:
|
|
||||||
|
|
||||||
`sudo apt-get update && sudo apt-get install docker.io`
|
|
||||||
|
|
||||||
From your X11 terminal, find your computer's IP address and authorize it for X11 connections
|
|
||||||
|
|
||||||
`xauth + 192.168.1.2`
|
|
||||||
|
|
||||||
# Download and build the sattools Dockerfile
|
|
||||||
https://github.com/cbassa/sattools/blob/master/Dockerfile
|
|
||||||
|
|
||||||
## In a Terminal (Mac/Unix) or Powershell (Windows) build the Dockerfile:
|
|
||||||
`docker build - < Dockerfile`
|
|
||||||
|
|
||||||
After a few minutes, your build should successfully finish. Check for your image with the command:
|
|
||||||
`$ docker images`
|
|
||||||
|
|
||||||
>REPOSITORY TAG IMAGE ID CREATED SIZE
|
|
||||||
><none> <none> 1ad51e488e1f 12 seconds ago 1.47GB
|
|
||||||
|
|
||||||
Take note of the IMAGE ID, in this case `1ad51e488e1f` this code represents the IMAGE you just built.
|
|
||||||
|
|
||||||
To run this image in a new container, run the following command in the terminal.
|
|
||||||
|
|
||||||
```docker run -it -e DISPLAY='host.docker.internal:0 \'
|
|
||||||
-v /tmp/.X11-unix:/tmp/.X11-unix:ro \
|
|
||||||
-v ~/Documents/satobs:/root/satellite/satobs \
|
|
||||||
--name mysattools 1ad51e488e1f \
|
|
||||||
/bin/bash
|
|
||||||
```
|
|
||||||
|
|
||||||
## Check out your new sattols Docker environment
|
|
||||||
You will be placed into the environment in the commandline of your sattools environment in the Docker container.
|
|
||||||
|
|
||||||
`root@a9031e8397c6:~# cd /root/satellite/sattools/`
|
|
||||||
|
|
||||||
The first thing you will want to do, is to specify your location. To do this, edit the file "stations.in"
|
|
||||||
|
|
||||||
`root@a9031e8397c6:~/satellite/sattools# nano data/sites.txt`
|
|
||||||
|
|
||||||
Scroll to the bottom of the file, to edit the entry for station 9999 with the name Graves.
|
|
||||||
Following the formatting for the file, enter the latitutde, longitude, elevation and name for your observing site, and save the file:
|
|
||||||
|
|
||||||
`9999 TS 47.6672 -122.0931 101 TruSat`
|
|
||||||
|
|
||||||
Next, you will want to edit the stvid configuration, which will allow you to get updated TLEs
|
|
||||||
|
|
||||||
First, register for a space-track.org account at https://www.space-track.org/auth/createAccount
|
|
||||||
|
|
||||||
Next, edit the information for your observation location, and put in the login information
|
|
||||||
for your space-track.org account
|
|
||||||
|
|
||||||
```cd /root/satellite/stvid
|
|
||||||
root@a9031e8397c6:~/satellite/stvid# cp configuration.ini-dist configuration.ini
|
|
||||||
nano configuration.ini
|
|
||||||
```
|
|
||||||
|
|
||||||
Last, update the TLEs with
|
|
||||||
|
|
||||||
`root@a9031e8397c6:~/satellite/stvid# python3 update_tle.py`
|
|
||||||
|
|
||||||
You can see your new TLEs at:
|
|
||||||
|
|
||||||
```root@a9031e8397c6:~/satellite/stvid# cd /root/satellite/tle/
|
|
||||||
root@a9031e8397c6:~/satellite/tle# ls -al
|
|
||||||
```
|
|
||||||
|
|
||||||
Here a few things that you can do now that your environment is set up for your location with TLEs
|
|
||||||
|
|
||||||
Get sunset / sunrise for your site (in UTC):
|
|
||||||
|
|
||||||
`root@a9031e8397c6:~/satellite/tle# allnight`
|
|
||||||
|
|
||||||
> 2019-11-27T00:56:27 2019-11-27T14:55:44
|
|
||||||
|
|
||||||
Run passes for your site for 3 hours, above 45 degrees, starting at sunset (from above):
|
|
||||||
`pass -t 2019-11-27T00:56:27 -l 10800 -A 45`
|
|
||||||
|
|
||||||
Run skymap to interactively view passes for your site:
|
|
||||||
`skymap S`
|
|
||||||
|
|
||||||
This should open a graphical display in an X-window on your system.
|
|
||||||
Use > to advance by 1 minute
|
|
||||||
|
|
||||||
Type `exit` to leave the docker environment.
|
|
||||||
|
|
||||||
# Returning to your docker environment.
|
|
||||||
|
|
||||||
You can check to see if your container is still running by typing the following in the terminal:
|
|
||||||
```(MVP) MBP-140320:~ chris$ docker ps -a
|
|
||||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
|
||||||
a9031e8397c6 d82642132ae1 "/bin/sh -c /bin/bas…" 6 days ago Up 6 days st-b3
|
|
||||||
6fe73f3d652e d82642132ae1 "/bin/sh -c /bin/bas…" 6 days ago Exited (0) 6 days ago st-b2
|
|
||||||
```
|
|
||||||
|
|
||||||
You can see multiple containers from the image you built. In this case, the container a9031e8397c6 is still running.
|
|
||||||
|
|
||||||
To reattach to this container, execute:
|
|
||||||
|
|
||||||
`docker attach a9031e8397c6`
|
|
||||||
|
|
||||||
You might need to press `return` to see the prompt.
|
|
||||||
|
|
||||||
If you don't have a container running (like container 6fe73f3d652e), you can restart it with:
|
|
||||||
|
|
||||||
`docker start 6fe73f3d652e`
|
|
||||||
|
|
||||||
If you don't have any active containers, you can start over with the `docker run` command above.
|
|
||||||
|
|
||||||
## Things to watch out for
|
|
||||||
1. When you build/start/stop/exit containers, its possible for multiple (1.5 gigabyte) containers to pile up. Review the commands for `docker rmi` and `docker rm` for how to remove thiese.
|
|
||||||
1. Any changes you make inside the docker container are not automatively saved to the image. If you would like to save your changes, use the `docker commit` command to make an updated version of the images with your changes.
|
|
||||||
|
|
160
Dockerfile
160
Dockerfile
|
@ -1,160 +0,0 @@
|
||||||
# Best Practices for Writing Docker Files
|
|
||||||
# https://docs.docker.com/develop/develop-images/dockerfile_best-practices/
|
|
||||||
|
|
||||||
# Note that this currently is a larger-than-necessary image due to the the
|
|
||||||
# intermediate RUN commands to compile the different pages
|
|
||||||
# Stringing-it-all-together would reduce the size, but would make build
|
|
||||||
# debugging more challenging
|
|
||||||
|
|
||||||
FROM ubuntu:18.04
|
|
||||||
|
|
||||||
# To avoid questions from tzdata
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
|
||||||
|
|
||||||
# Modify the following with your preferred COSPAR station ID
|
|
||||||
ENV ST_COSPAR 9999
|
|
||||||
|
|
||||||
# Update these directories per your preferences
|
|
||||||
ENV HOME /root
|
|
||||||
ENV SAT_DIR $HOME/satellite
|
|
||||||
ENV ST_DATADIR $SAT_DIR/sattools
|
|
||||||
ENV ST_TLEDIR $SAT_DIR/tle
|
|
||||||
ENV ST_OBSDIR $SAT_DIR/satobs
|
|
||||||
|
|
||||||
# Note that its convenient to mount your host filesystem to the ST_TLEDIR and ST_OBSDIR with
|
|
||||||
# -V YOUR_EXTERNAL_TLE_DIR:/root/satellite/tle
|
|
||||||
# -V YOUR_EXTERNAL_SATOBS_DIR:/root/satellite/satobs
|
|
||||||
|
|
||||||
RUN echo "Step 1.0: Install dependencies from APT" \
|
|
||||||
& apt-get update && apt-get install -y --no-install-recommends \
|
|
||||||
git \
|
|
||||||
make \
|
|
||||||
dos2unix \
|
|
||||||
sextractor \
|
|
||||||
wcslib-dev \
|
|
||||||
pgplot5 \
|
|
||||||
libgsl-dev \
|
|
||||||
gfortran \
|
|
||||||
g++ \
|
|
||||||
libpng-dev \
|
|
||||||
libx11-dev \
|
|
||||||
libjpeg-dev \
|
|
||||||
libexif-dev \
|
|
||||||
unzip \
|
|
||||||
vim \
|
|
||||||
nano \
|
|
||||||
wget \
|
|
||||||
# For hough3dlines
|
|
||||||
libeigen3-dev \
|
|
||||||
# For STVID
|
|
||||||
python3 \
|
|
||||||
python3-dev \
|
|
||||||
astrometry.net \
|
|
||||||
# For scipy
|
|
||||||
libblas3 \
|
|
||||||
liblapack3 \
|
|
||||||
liblapack-dev \
|
|
||||||
libblas-dev \
|
|
||||||
# For STRF
|
|
||||||
libfftw3-dev \
|
|
||||||
# For pip
|
|
||||||
ca-certificates \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# For STVID package requirements.txt
|
|
||||||
WORKDIR /tmp
|
|
||||||
RUN ["/bin/bash", "-c", "set -o pipefail && wget -O - https://bootstrap.pypa.io/get-pip.py | python3 -"]
|
|
||||||
|
|
||||||
RUN echo "Step 2.0: Install qfits for SATTOOLS"
|
|
||||||
WORKDIR /usr/local/src
|
|
||||||
RUN ["/bin/bash", "-c", "set -o pipefail && wget -O - ftp://ftp.eso.org/pub/qfits/qfits-5.2.0.tar.gz | tar xzvf - \
|
|
||||||
&& cd qfits-5.2.0 \
|
|
||||||
&& chmod +w src/xmemory.c \
|
|
||||||
&& sed -i -e 's/swapfd = open(fname, O_RDWR | O_CREAT);/swapfd = open(fname, O_RDWR | O_CREAT, 0644);/g' src/xmemory.c \
|
|
||||||
&& ./configure \
|
|
||||||
&& make \
|
|
||||||
&& make install \
|
|
||||||
&& echo 'Step 2.1: clean up' \
|
|
||||||
&& rm -rf /usr/local/src/qfits-5.2.0"]
|
|
||||||
|
|
||||||
WORKDIR ${SAT_DIR}
|
|
||||||
RUN echo "Step 3.0: Install hough3dlines for STVID" \
|
|
||||||
&& git clone https://gitlab.com/pierros/hough3d-code.git \
|
|
||||||
&& cd hough3d-code \
|
|
||||||
&& make \
|
|
||||||
&& rm *.o \
|
|
||||||
&& echo "Done installing dependencies" \
|
|
||||||
&& mkdir -p $SAT_DIR
|
|
||||||
|
|
||||||
##
|
|
||||||
## THIS SECTION BUILDS SATTOOLS SUITE
|
|
||||||
##
|
|
||||||
|
|
||||||
WORKDIR $SAT_DIR
|
|
||||||
RUN echo "Step 4.0: Build satools/strf/stvid" \
|
|
||||||
&& echo "Step 4.1: Build sattools: Satellite Tracking Toolkit" \
|
|
||||||
&& git clone https://github.com/interplanetarychris/sattools.git \
|
|
||||||
&& cd sattools \
|
|
||||||
&& git checkout Docker \
|
|
||||||
&& make \
|
|
||||||
&& make clean
|
|
||||||
|
|
||||||
RUN echo "Step 4.2. Build stvid: Satellite tracking with video cameras" \
|
|
||||||
&& git clone https://github.com/interplanetarychris/stvid.git \
|
|
||||||
&& cd $SAT_DIR/stvid \
|
|
||||||
&& git checkout Docker \
|
|
||||||
&& pip install -r $SAT_DIR/stvid/requirements.txt \
|
|
||||||
# Needed twice, because ppgplot installs correctly on the second try
|
|
||||||
&& pip install -r $SAT_DIR/stvid/requirements.txt
|
|
||||||
#WORKDIR /usr/local/src
|
|
||||||
#RUN git clone https://github.com/haavee/ppgplot.git
|
|
||||||
# WORKDIR /usr/local/src/ppgplot
|
|
||||||
# RUN python3 setup.py install
|
|
||||||
|
|
||||||
WORKDIR $SAT_DIR
|
|
||||||
RUN echo "Step 4.3. Build strf: Radio Frequency Satellite Tracking" \
|
|
||||||
&& git clone https://github.com/cbassa/strf.git \
|
|
||||||
&& cd $SAT_DIR/strf \
|
|
||||||
&& make \
|
|
||||||
&& make clean
|
|
||||||
|
|
||||||
RUN echo "Step 4.4 Decrease container size after everything is compiled" \
|
|
||||||
&& apt-get purge -y \
|
|
||||||
wcslib-dev \
|
|
||||||
libgsl-dev \
|
|
||||||
gfortran \
|
|
||||||
libpng-dev \
|
|
||||||
libx11-dev \
|
|
||||||
libjpeg-dev \
|
|
||||||
libexif-dev \
|
|
||||||
# For hough3dlines
|
|
||||||
libeigen3-dev \
|
|
||||||
# For STVID
|
|
||||||
python3-dev \
|
|
||||||
# For scipy
|
|
||||||
liblapack-dev \
|
|
||||||
libblas-dev \
|
|
||||||
# For STRF
|
|
||||||
libfftw3-dev \
|
|
||||||
&& apt-get autoremove -y
|
|
||||||
|
|
||||||
WORKDIR $HOME
|
|
||||||
RUN echo "Step 5.0: set environment variables" \
|
|
||||||
&& echo "export ST_COSPAR=$ST_COSPAR" >>$HOME/.profile \
|
|
||||||
&& echo "export ST_DATADIR=$ST_DATADIR" >>$HOME/.profile \
|
|
||||||
&& echo "export ST_TLEDIR=$ST_TLEDIR" >>$HOME/.profile \
|
|
||||||
&& echo "export ST_OBSDIR=$ST_OBSDIR" >>$HOME/.profile \
|
|
||||||
&& mkdir -p $ST_OBSDIR \
|
|
||||||
&& mkdir $ST_OBSDIR/control \
|
|
||||||
&& echo "Step 5.1: set path" \
|
|
||||||
&& echo "PATH=$ST_DATADIR:$ST_DATADIR/scripts:$SAT_DIR/hough3d-code:$SAT_DIR/strf:\$PATH" >>$HOME/.profile
|
|
||||||
|
|
||||||
RUN echo "Step 5.2: Download initial TLEs" \
|
|
||||||
&& mkdir -p $ST_TLEDIR \
|
|
||||||
&& $ST_DATADIR/tleupdate \
|
|
||||||
&& echo "Final step: run" \
|
|
||||||
&& echo "source $HOME/.profile"
|
|
||||||
|
|
||||||
# Run bash by default if everything else compiles
|
|
||||||
ENTRYPOINT /bin/bash
|
|
||||||
CMD bash
|
|
Loading…
Reference in New Issue