mirror of
https://github.com/craigerl/aprsd.git
synced 2024-11-17 22:01:49 -05:00
Hemna
f02db20c3e
this patch changes the entrypoint and commands to be in line with how Docker defines their usage. this allows the admin using this container to specify which command to run in the docker-compose.yml if they want to run something other than the aprsd server command. This now allows to easily run webchat as a container :)!
63 lines
1.7 KiB
Plaintext
63 lines
1.7 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==2.0.24
|
|
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/setup.sh /app
|
|
ADD bin/run.sh /app
|
|
ADD bin/listen.sh /app
|
|
ADD bin/admin.sh /app
|
|
|
|
EXPOSE 8000
|
|
EXPOSE 8001
|
|
|
|
VOLUME ["/config"]
|
|
# CMD ["gunicorn", "aprsd.wsgi:app", "--host", "0.0.0.0", "--port", "8000"]
|
|
ENTRYPOINT ["/app/setup.sh"]
|
|
CMD ["server"]
|
|
|
|
# Set the user to run the application
|
|
USER appuser
|