news
This commit is contained in:
60
docker/Dockerfile
Normal file
60
docker/Dockerfile
Normal file
@@ -0,0 +1,60 @@
|
||||
# syntax=docker/dockerfile:1.6
|
||||
|
||||
FROM python:3.11-slim AS runtime
|
||||
|
||||
ENV PYTHONUNBUFFERED=1 \
|
||||
PIP_NO_CACHE_DIR=1 \
|
||||
ANSIBLE_FORCE_COLOR=1
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
openssh-client \
|
||||
sshpass \
|
||||
git \
|
||||
curl \
|
||||
ca-certificates \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /opt/ansible-ui
|
||||
|
||||
RUN useradd --create-home --shell /bin/bash appuser \
|
||||
&& mkdir -p \
|
||||
/opt/ansible-ui/app \
|
||||
/opt/ansible/playbooks \
|
||||
/opt/ansible/inventories \
|
||||
/opt/ansible/ssh-keys \
|
||||
/var/lib/ansible_ui \
|
||||
/var/log/ansible_ui \
|
||||
&& chown -R appuser:appuser \
|
||||
/opt/ansible-ui \
|
||||
/opt/ansible/playbooks \
|
||||
/opt/ansible/inventories \
|
||||
/opt/ansible/ssh-keys \
|
||||
/var/lib/ansible_ui \
|
||||
/var/log/ansible_ui
|
||||
|
||||
RUN pip install --no-cache-dir \
|
||||
ansible \
|
||||
fastapi \
|
||||
uvicorn[standard] \
|
||||
jinja2 \
|
||||
python-multipart \
|
||||
aiofiles
|
||||
|
||||
COPY app /opt/ansible-ui/app
|
||||
|
||||
USER appuser
|
||||
|
||||
ENV DATA_ROOT=/opt/ansible-ui \
|
||||
PLAYBOOK_DIR=/opt/ansible/playbooks \
|
||||
INVENTORY_DIR=/opt/ansible/inventories \
|
||||
SSH_KEY_DIR=/opt/ansible/ssh-keys \
|
||||
DB_PATH=/var/lib/ansible_ui/ansible_ui.db \
|
||||
LOG_DIR=/var/log/ansible_ui \
|
||||
HTPASSWD_PATH=/opt/ansible-ui/.htpasswd
|
||||
|
||||
VOLUME ["/opt/ansible/playbooks", "/opt/ansible/inventories", "/opt/ansible/ssh-keys", "/var/lib/ansible_ui", "/var/log/ansible_ui"]
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
|
||||
Reference in New Issue
Block a user