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"]
|
||||
29
docker/docker-compose.yml
Normal file
29
docker/docker-compose.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
web:
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: docker/Dockerfile
|
||||
container_name: ansible-webui
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8000:8000"
|
||||
environment:
|
||||
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
|
||||
volumes:
|
||||
- ../app:/opt/ansible-ui/app:ro
|
||||
- ../data/playbooks:/opt/ansible/playbooks
|
||||
- ../data/inventories:/opt/ansible/inventories
|
||||
- ../data/ssh-keys:/opt/ansible/ssh-keys
|
||||
- ../data/ansible_ui.db:/var/lib/ansible_ui/ansible_ui.db
|
||||
- ../data/.htpasswd:/opt/ansible-ui/.htpasswd:ro
|
||||
- ../logs:/var/log/ansible_ui
|
||||
tty: true
|
||||
stdin_open: false
|
||||
Reference in New Issue
Block a user