mirror of https://github.com/XEphem/XEphem.git
Add container that verifies Ubuntu 21.04 build
This commit is contained in:
parent
752289ecde
commit
8b7ead4d3b
|
|
@ -0,0 +1,34 @@
|
||||||
|
FROM ubuntu:21.04
|
||||||
|
|
||||||
|
# Install everything XEphem needs to compile.
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND noninteractive
|
||||||
|
RUN apt update
|
||||||
|
RUN apt upgrade -y -y
|
||||||
|
RUN apt install -y -y apt-file
|
||||||
|
RUN apt-file update
|
||||||
|
RUN apt install -y -y \
|
||||||
|
build-essential \
|
||||||
|
groff-base \
|
||||||
|
libmotif-dev \
|
||||||
|
libxext-dev \
|
||||||
|
libxmu-dev \
|
||||||
|
libxt-dev
|
||||||
|
|
||||||
|
# Remove the Linux empty /srv directory so it does not interrupt tab
|
||||||
|
# completion of /src, where we put the XEphem source tree.
|
||||||
|
|
||||||
|
RUN rmdir /srv
|
||||||
|
|
||||||
|
# Set up /root as our home directory, with a useful bash history and an
|
||||||
|
# “.xephem” symlink that shows XEphem where to find its support files.
|
||||||
|
|
||||||
|
ENV HOME /root
|
||||||
|
RUN ln -s /src/GUI/xephem/auxil /root/.xephem
|
||||||
|
RUN echo 'make -C /src/GUI/xephem && (cd /src/GUI/xephem; ./xephem)' \
|
||||||
|
> /root/.bash_history
|
||||||
|
|
||||||
|
# Start the user in the /src directory.
|
||||||
|
|
||||||
|
WORKDIR /src/GUI/xephem
|
||||||
|
CMD /bin/bash
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
# XEphem Docker container
|
||||||
|
|
||||||
|
This directory offers a `Dockerfile` plus a small shell script `run`.
|
||||||
|
Run the shell script to build and launch a Ubuntu 14.04 container with
|
||||||
|
all the libraries XEphem needs:
|
||||||
|
|
||||||
|
./container/run
|
||||||
|
|
||||||
|
Then, at the container’s prompt (which looks like `root@...:/src#`),
|
||||||
|
you can build XEphem with:
|
||||||
|
|
||||||
|
make -C /src/GUI/xephem
|
||||||
|
|
||||||
|
And run it with:
|
||||||
|
|
||||||
|
/src/GUI/xephem/xephem
|
||||||
|
|
||||||
|
If you press up-arrow at the bash prompt right after the container
|
||||||
|
launches, you will find this pair of commands already in the shell
|
||||||
|
history so you can simply press Enter to run them.
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
if [ ! -f /usr/bin/docker ]
|
||||||
|
then
|
||||||
|
echo 'Error: please "apt install docker.io"' >&2
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Change directory to the directory with this script and its Dockerfile.
|
||||||
|
|
||||||
|
cd "$(dirname $0)"
|
||||||
|
|
||||||
|
# Build the Docker image from the instructions in the Dockerfile.
|
||||||
|
# Name the resulting image "xephem".
|
||||||
|
|
||||||
|
docker build -t xephem-ubuntu-14.04 . 1>&2
|
||||||
|
|
||||||
|
# Run the "xephem" image, exposing several files from the host system
|
||||||
|
# that together should let XEphem run and connect to X Windows:
|
||||||
|
#
|
||||||
|
# 1. This XEphem source tree, which gets mounted at "/src".
|
||||||
|
# 2. The collection of X11 sockets in /tmp.
|
||||||
|
# 3. Our X session's private authority file.
|
||||||
|
|
||||||
|
exec docker run -ti \
|
||||||
|
--net=host \
|
||||||
|
-e DISPLAY=$DISPLAY \
|
||||||
|
-v ${PWD}/../..:/src \
|
||||||
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
|
-v ${XAUTHORITY}:/root/.Xauthority \
|
||||||
|
xephem-ubuntu-14.04 \
|
||||||
|
"$@"
|
||||||
Loading…
Reference in New Issue