| | version: '3.8' |
| |
|
| | |
| | x-env: &env |
| | env_file: .env |
| | environment: |
| | - OLLAMA_PORT=${OLLAMA_PORT:-11434} |
| | - OLLAMA_HOST=${OLLAMA_HOST:-0.0.0.0} |
| | - STREAMLIT_SERVER_PORT=${STREAMLIT_SERVER_PORT:-8501} |
| | - STREAMLIT_SERVER_ADDRESS=${STREAMLIT_SERVER_ADDRESS:-0.0.0.0} |
| | - DEFAULT_MODEL=${DEFAULT_MODEL:-mistral:7b-instruct} |
| |
|
| | services: |
| | |
| | ollama: |
| | image: ollama/ollama:latest |
| | container_name: ollama-engine |
| | <<: *env |
| | ports: |
| | - "${OLLAMA_PORT:-11434}:11434" |
| | volumes: |
| | - ollama_data:/root/.ollama |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | restart: unless-stopped |
| |
|
| | |
| | streamlit-ui: |
| | build: . |
| | container_name: llm-ui |
| | <<: *env |
| | ports: |
| | - "${STREAMLIT_SERVER_PORT:-8501}:8501" |
| | depends_on: |
| | - ollama |
| | environment: |
| | - OLLAMA_URL=http://ollama:${OLLAMA_PORT:-11434} |
| | - STREAMLIT_SERVER_PORT=${STREAMLIT_SERVER_PORT:-8501} |
| | - STREAMLIT_SERVER_ADDRESS=${STREAMLIT_SERVER_ADDRESS:-0.0.0.0} |
| | restart: unless-stopped |
| | volumes: |
| | - ./app:/app |
| | healthcheck: |
| | test: ["CMD", "curl", "-f", "http://localhost:${STREAMLIT_SERVER_PORT:-8501}/_stcore/health"] |
| | interval: 30s |
| | timeout: 10s |
| | retries: 3 |
| |
|
| | |
| | model-setup: |
| | image: ollama/ollama:latest |
| | container_name: model-setup |
| | <<: *env |
| | depends_on: |
| | - ollama |
| | volumes: |
| | - ollama_data:/root/.ollama |
| | environment: |
| | - OLLAMA_HOST=http://ollama:${OLLAMA_PORT:-11434} |
| | - DEFAULT_MODEL=${DEFAULT_MODEL:-mistral:7b-instruct} |
| | command: > |
| | sh -c " |
| | echo 'Waiting for Ollama to be ready...' && |
| | sleep 10 && |
| | ollama pull ${DEFAULT_MODEL:-mistral:7b-instruct} && |
| | echo 'Model loaded successfully!' |
| | " |
| | restart: "no" |
| |
|
| | volumes: |
| | ollama_data: |