mirror of
https://github.com/craigerl/aprsd.git
synced 2024-12-18 15:46:11 -05:00
Updates for building containers
This patch updates the Dockerfile for building the official container image and includes the ability to load external pypi modules as plugins at container startup.
This commit is contained in:
parent
ba61178b14
commit
861fde6f83
22
Dockerfile
22
Dockerfile
@ -1,18 +1,16 @@
|
|||||||
FROM ubuntu:20.04 as aprsd
|
FROM ubuntu:20.04 as aprsd
|
||||||
|
|
||||||
|
|
||||||
ENV VERSION=1.0.0
|
ENV VERSION=1.0.0
|
||||||
ENV APRS_USER=aprs
|
ENV APRS_USER=aprs
|
||||||
ENV HOME=/home/aprs
|
ENV HOME=/home/aprs
|
||||||
ENV APRSD=http://github.com/craigerl/aprsd.git
|
ENV VIRTUAL_ENV=$HOME/.venv3
|
||||||
ENV APRSD_BRANCH="master"
|
|
||||||
|
|
||||||
ENV INSTALL=$HOME/install
|
ENV INSTALL=$HOME/install
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
RUN apt-get -y update
|
RUN apt-get -y update
|
||||||
RUN apt-get install -y wget gnupg git-core
|
RUN apt-get install -y wget gnupg git-core
|
||||||
RUN apt-get install -y apt-utils pkg-config sudo
|
RUN apt-get install -y apt-utils pkg-config sudo vim
|
||||||
RUN apt-get install -y python3 python3-pip python3-virtualenv
|
RUN apt-get install -y python3 python3-pip python3-virtualenv python3-venv
|
||||||
|
|
||||||
# Setup Timezone
|
# Setup Timezone
|
||||||
ENV TZ=US/Eastern
|
ENV TZ=US/Eastern
|
||||||
@ -24,17 +22,21 @@ RUN dpkg-reconfigure --frontend noninteractive tzdata
|
|||||||
RUN addgroup --gid 1000 $APRS_USER
|
RUN addgroup --gid 1000 $APRS_USER
|
||||||
RUN useradd -m -u 1000 -g 1000 -p $APRS_USER $APRS_USER
|
RUN useradd -m -u 1000 -g 1000 -p $APRS_USER $APRS_USER
|
||||||
|
|
||||||
|
ENV LC_ALL=C.UTF-8
|
||||||
|
ENV LANG=C.UTF-8
|
||||||
|
|
||||||
USER $APRS_USER
|
USER $APRS_USER
|
||||||
|
RUN pip3 install wheel
|
||||||
|
RUN python3 -m venv $VIRTUAL_ENV
|
||||||
|
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
||||||
RUN echo "export PATH=\$PATH:\$HOME/.local/bin" >> $HOME/.bashrc
|
RUN echo "export PATH=\$PATH:\$HOME/.local/bin" >> $HOME/.bashrc
|
||||||
VOLUME ["/config"]
|
VOLUME ["/config", "/plugins"]
|
||||||
|
|
||||||
WORKDIR $HOME
|
WORKDIR $HOME
|
||||||
RUN mkdir $INSTALL
|
RUN pip install aprsd
|
||||||
# install librtlsdr from source
|
|
||||||
RUN git clone -b $APRSD_BRANCH $APRSD $INSTALL/aprsd
|
|
||||||
USER root
|
USER root
|
||||||
RUN cd $INSTALL/aprsd && pip3 install .
|
|
||||||
RUN aprsd sample-config > /config/aprsd.yml
|
RUN aprsd sample-config > /config/aprsd.yml
|
||||||
|
RUN chown -R $APRS_USER:$APRS_USER /config
|
||||||
|
|
||||||
# override this to run another configuration
|
# override this to run another configuration
|
||||||
ENV CONF default
|
ENV CONF default
|
||||||
|
53
Dockerfile-dev
Normal file
53
Dockerfile-dev
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
FROM ubuntu:20.04 as aprsd
|
||||||
|
|
||||||
|
# Dockerfile for building a container during aprsd development.
|
||||||
|
|
||||||
|
ENV VERSION=1.0.0
|
||||||
|
ENV APRS_USER=aprs
|
||||||
|
ENV HOME=/home/aprs
|
||||||
|
ENV APRSD=http://github.com/craigerl/aprsd.git
|
||||||
|
ENV APRSD_BRANCH="master"
|
||||||
|
ENV VIRTUAL_ENV=$HOME/.venv3
|
||||||
|
|
||||||
|
ENV INSTALL=$HOME/install
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
RUN apt-get -y update
|
||||||
|
RUN apt-get install -y wget gnupg git-core
|
||||||
|
RUN apt-get install -y apt-utils pkg-config sudo vim
|
||||||
|
RUN apt-get install -y python3 python3-pip python3-virtualenv python3-venv
|
||||||
|
|
||||||
|
# Setup Timezone
|
||||||
|
ENV TZ=US/Eastern
|
||||||
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||||
|
RUN apt-get install -y tzdata
|
||||||
|
RUN dpkg-reconfigure --frontend noninteractive tzdata
|
||||||
|
|
||||||
|
|
||||||
|
RUN addgroup --gid 1000 $APRS_USER
|
||||||
|
RUN useradd -m -u 1000 -g 1000 -p $APRS_USER $APRS_USER
|
||||||
|
|
||||||
|
ENV LC_ALL=C.UTF-8
|
||||||
|
ENV LANG=C.UTF-8
|
||||||
|
|
||||||
|
USER $APRS_USER
|
||||||
|
RUN pip3 install wheel
|
||||||
|
RUN python3 -m venv $VIRTUAL_ENV
|
||||||
|
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
||||||
|
RUN echo "export PATH=\$PATH:\$HOME/.local/bin" >> $HOME/.bashrc
|
||||||
|
VOLUME ["/config", "/plugins"]
|
||||||
|
|
||||||
|
WORKDIR $HOME
|
||||||
|
RUN mkdir $INSTALL
|
||||||
|
RUN git clone -b $APRSD_BRANCH $APRSD $INSTALL/aprsd
|
||||||
|
RUN cd $INSTALL/aprsd && pip3 install .
|
||||||
|
RUN which aprsd
|
||||||
|
USER root
|
||||||
|
RUN aprsd sample-config > /config/aprsd.yml
|
||||||
|
RUN chown -R $APRS_USER:$APRS_USER /config
|
||||||
|
|
||||||
|
# override this to run another configuration
|
||||||
|
ENV CONF default
|
||||||
|
USER $APRS_USER
|
||||||
|
|
||||||
|
ADD build/bin/run.sh $HOME/
|
||||||
|
ENTRYPOINT ["/home/aprs/run.sh"]
|
@ -1,6 +1,21 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
set -x
|
||||||
|
|
||||||
export PATH=$PATH:$HOME/.local/bin
|
export PATH=$PATH:$HOME/.local/bin
|
||||||
|
export VIRTUAL_ENV=$HOME/.venv3
|
||||||
|
source $VIRTUAL_ENV/bin/activate
|
||||||
|
|
||||||
|
if [ ! -z "${APRS_PLUGINS}" ]; then
|
||||||
|
OLDIFS=$IFS
|
||||||
|
IFS=','
|
||||||
|
echo "Installing pypi plugins '$APRS_PLUGINS'";
|
||||||
|
for plugin in ${APRS_PLUGINS}; do
|
||||||
|
IFS=$OLDIFS
|
||||||
|
# call your procedure/other scripts here below
|
||||||
|
echo "Installing '$plugin'"
|
||||||
|
pip3 install $plugin
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
# check to see if there is a config file
|
# check to see if there is a config file
|
||||||
APRSD_CONFIG="/config/aprsd.yml"
|
APRSD_CONFIG="/config/aprsd.yml"
|
||||||
@ -8,5 +23,4 @@ if [ ! -e "$APRSD_CONFIG" ]; then
|
|||||||
echo "'$APRSD_CONFIG' File does not exist. Creating."
|
echo "'$APRSD_CONFIG' File does not exist. Creating."
|
||||||
aprsd sample-config > $APRSD_CONFIG
|
aprsd sample-config > $APRSD_CONFIG
|
||||||
fi
|
fi
|
||||||
|
$VIRTUAL_ENV/bin/aprsd server -c $APRSD_CONFIG
|
||||||
aprsd server -c $APRSD_CONFIG
|
|
||||||
|
@ -5,6 +5,8 @@ services:
|
|||||||
container_name: aprsd
|
container_name: aprsd
|
||||||
volumes:
|
volumes:
|
||||||
- /opt/docker/aprsd/config:/config
|
- /opt/docker/aprsd/config:/config
|
||||||
|
- /opt/docker/aprsd/plugins:/plugins
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- TZ=America/New_York
|
- TZ=America/New_York
|
||||||
|
- APRS_PLUGINS=aprsd-slack-plugin
|
||||||
|
Loading…
Reference in New Issue
Block a user