Docker & Compose
O código de borda de apps IronFlock é empacotado como containers Docker. Para apps mais complexos, Docker Compose permite orquestrar múltiplos containers juntos.
Dockerfile Básico
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY src/ .
CMD ["python", "main.py"]Docker Compose para Apps Multi-Container
version: "3.8"
services:
agent:
build: ./agent
volumes:
- /app/params:/app/params:ro
restart: unless-stopped
environment:
- WAMP_URL=ws://localhost:8080/ws
- REALM=realm1
processor:
build: ./processor
depends_on:
- agent
restart: unless-stoppedVolumes Importantes
O agente IronFlock monta volumes no seu container de borda:
| Caminho | Conteúdo |
|---|---|
/app/params/ | Parâmetros configurados pelo usuário (JSON) |
/app/data/ | Armazenamento persistente local |
Monte estes como volumes somente leitura (params) ou leitura-escrita (data) conforme necessário.
Variáveis de Ambiente
O agente IronFlock injeta variáveis de ambiente no seu container:
| Variável | Descrição |
|---|---|
WAMP_URL | URL do broker WAMP local |
REALM | Realm WAMP para conexão |
DEVICE_SERIAL | Número de série único do dispositivo |
APP_KEY | Identificador do app |
Boas Práticas
- Use imagens base pequenas (
-slim,-alpine) para reduzir o tamanho do download - Faça camadas de instalações de dependências antes do código da aplicação para melhor caching
- Sempre use
restart: unless-stoppedpara resiliência - Nunca armazene credenciais em imagens — use parâmetros ou variáveis de ambiente
Last updated on