mirror of
https://github.com/craigerl/aprsd.git
synced 2024-10-31 15:07:13 -04:00
60 lines
1.6 KiB
Plaintext
60 lines
1.6 KiB
Plaintext
FROM python:3.11-slim as build
|
|
|
|
ARG BRANCH=master
|
|
ARG BUILDX_QEMU_ENV
|
|
ENV APRSD_BRANCH=${BRANCH:-master}
|
|
|
|
ENV PIP_DEFAULT_TIMEOUT=100 \
|
|
# Allow statements and log messages to immediately appear
|
|
PYTHONUNBUFFERED=1 \
|
|
# disable a pip version check to reduce run-time & log-spam
|
|
PIP_DISABLE_PIP_VERSION_CHECK=1 \
|
|
# cache is useless in docker image, so disable to reduce image size
|
|
PIP_NO_CACHE_DIR=1
|
|
|
|
|
|
RUN set -ex \
|
|
# Create a non-root user
|
|
&& addgroup --system --gid 1001 appgroup \
|
|
&& useradd --uid 1001 --gid 1001 -s /usr/bin/bash -m -d /app appuser \
|
|
# Upgrade the package index and install security upgrades
|
|
&& apt-get update \
|
|
&& apt-get upgrade -y \
|
|
&& apt-get install -y git build-essential curl libffi-dev fortune \
|
|
python3-dev libssl-dev libxml2-dev libxslt-dev telnet sudo \
|
|
# Install dependencies
|
|
# Clean up
|
|
&& apt-get autoremove -y \
|
|
&& apt-get clean -y
|
|
|
|
|
|
### Final stage
|
|
FROM build as final
|
|
WORKDIR /app
|
|
|
|
RUN git clone -b $APRSD_BRANCH https://github.com/craigerl/aprsd
|
|
RUN pip install -U pip
|
|
RUN cd aprsd && pip install --no-cache-dir .
|
|
RUN pip install gevent uwsgi
|
|
RUN which aprsd
|
|
RUN mkdir /config
|
|
RUN chown -R appuser:appgroup /app
|
|
RUN chown -R appuser:appgroup /config
|
|
USER appuser
|
|
RUN echo "PATH=\$PATH:/usr/games" >> /app/.bashrc
|
|
RUN which aprsd
|
|
RUN aprsd sample-config > /config/aprsd.conf
|
|
|
|
ADD bin/run.sh /app
|
|
ADD bin/listen.sh /app
|
|
ADD bin/admin.sh /app
|
|
|
|
EXPOSE 8000
|
|
|
|
# CMD ["gunicorn", "aprsd.wsgi:app", "--host", "0.0.0.0", "--port", "8000"]
|
|
ENTRYPOINT ["/app/run.sh"]
|
|
VOLUME ["/config"]
|
|
|
|
# Set the user to run the application
|
|
USER appuser
|