2025-02-15 07:09:19 +13:00
|
|
|
FROM almalinux:9.5
|
2025-02-15 07:03:23 +13:00
|
|
|
ARG DEV_DEPENDENCIES="gcc python3-devel postgresql-devel mariadb-devel"
|
|
|
|
|
|
|
|
|
|
RUN dnf update -y \
|
|
|
|
|
&& dnf install -y which \
|
|
|
|
|
python3-pip \
|
|
|
|
|
postgresql \
|
|
|
|
|
libpq \
|
|
|
|
|
mariadb-connector-c
|
|
|
|
|
|
|
|
|
|
# Install development dependencies required for installing packages from PyPI
|
|
|
|
|
RUN dnf install -y ${DEV_DEPENDENCIES}
|
|
|
|
|
|
|
|
|
|
# Install ara from PyPI with API server extras for dependencies (django & django-rest-framework)
|
|
|
|
|
# including database backend libraries and gunicorn
|
|
|
|
|
RUN python3 -m pip install "ara[server,postgresql,mysql]" gunicorn
|
|
|
|
|
|
|
|
|
|
# Remove development dependencies and clean up
|
|
|
|
|
RUN dnf remove -y ${DEV_DEPENDENCIES} \
|
|
|
|
|
&& dnf autoremove -y \
|
|
|
|
|
&& dnf clean all \
|
|
|
|
|
&& python3 -m pip cache purge
|
|
|
|
|
|
|
|
|
|
# Set up the container to execute SQL migrations and run the API server with gunicorn
|
|
|
|
|
ENV ARA_BASE_DIR=/opt/ara
|
|
|
|
|
CMD ["bash", "-c", "/usr/local/bin/ara-manage migrate && python3 -m gunicorn --workers=4 --access-logfile - --bind 0.0.0.0:8000 ara.server.wsgi" ]
|
|
|
|
|
EXPOSE 8000
|