O artigo foi motivado pelo 2025 September Article Bounty
********************************************************
O princípio do Docker é simplesmente convincente para mim.
- Obtenha uma área restrita onde você pode brincar e tentar o que quiser/precisar fazer.
- Depois de terminar, você pode descartá-la sem deixar rastros em seu ambiente de trabalho.
Essa foi a base técnica que me permitiu executar cerca de 700 revisões no OEX
quase sem efeitos colaterais (exceto aqueles causados por mim mesmo).
Para iniciantes, vou começar com o IRIS puro, sem *health, *ML, *whatever.
Primeiro, você precisa instalar o Docker. Ele está disponível em quase todas as plataformas.
Minha preferência pessoal é o Windows Docker Desktop por seu console de
administração confortável. Não me aprofundo na gestão detalhada do Docker.
Há material de leitura suficiente para pesquisar no Docker Docs
Segundo, você decide sobre uma encarnação do IRIS de sua escolha
a mais simples: intersystemsdc/iris-community pronta para usar
- roda no Ubuntu
- tem uma licença comunitária válida
- tem o Apache httpd instalado
- tem o cliente IPM/ZPM instalado
Aviso nº 1: Como iniciante, não estude os pacotes oferecidos no OEX
Eles são ótimos (na maioria), mas sempre direcionados a alguma funcionalidade
para alguma aplicação especial que requer configurações especiais e uma instalação complicada.
Aviso nº 2: O Docker tem um rico conjunto de comandos com tudo o que você precisa
E esses comandos oferecem uma enxurrada de parâmetros (às vezes confusos).
Portanto, sugiro torná-los reproduzíveis usando scripts dedicados.
Dockerfile é a maneira de lidar com construções complexas com muitos extras a serem
carregados antecipadamente. Normalmente, eu os via relacionados ao Python e a vários casos de demonstração de IA.
Não há necessidade desse exemplo.
docker-compose.yml é o verdadeiro responsável por ativar seu contêiner.
Ele precisa de:
- uma definição do que deseja “compor” >>
service:
- um nome para elet >>
iris:
- qual imagem executar >>
image: intersystemsdc/iris-community
- um nome para elet >>
- Em seguida, você precisa definir como a porta 1972 do SuperServer e a porta padrão 52773 do WebServer ficarão visíveis fora do contêine
-
ports: - 41773:1972 - 42773:52773
-
- Por fim, não é um requisito urgente, mas muitas vezes é muito útil mapear seu diretório local para algum diretório interno no contêiner. Eu usei /external
Especialmente no início, esse caminho bidirecional facilita muito a vida
volumes:
- ./:/external
Agora, este é o texto final do docker-compose.yml
services:
iris:
image: intersystemsdc/iris-community
ports:
- 41773:1972
- 42773:52773
volumes:
- ./:/external
Agora você está pronto para executar sua primeira instância do IRIS no Docker
docker-compose up permite que você assista à inicialização completa
docker-compose up -d inicia uma inicialização em segundo plano e mantém
docker ps -a mostra as portas e as imagens em execução do seu contêiner
OK, seu novo IRIS está no Docker agora.
Mas como você pode usá-lo?
- Você tem o WebServer e, portanto, o Portal de Gerenciament
- Você tem o SuperServerPort para acesso ODBC, IRIS NATIVE, ... (e até mesmo Studio).
- E você também pode acessar o IRIS a partir da linha de comando dentro do contêiner.er
- docker-compose exec iris iris session iris
- Dividindo essa única linha, você acessa primeiro o contêiner e depois o IRIS
- docker-compose exec iris bash
- Then iris view
-
Instance 'IRIS' (default) directory: /usr/irissys versionid: 2025.1.0.223.0com datadir: /usr/irissys conf file: iris.cpf (WebServer port = 52773) status: running, since Thu Sep 4 14:35:19 2025 SuperServers: 1972 state: ok product: InterSystems IRIS
- E iris session iris
-
Node: 3266c5c8b21f, Instance: IRIS USER>
-
- Aqui, no nível do bash, você tem todas as opções para operar o IRIS em suas mãos Seu usuário Ubuntu é irisowner
- para os raros casos em que você pode precisar de acesso root docker-compose exec -u root iris bash
- Pare seu contêiner com docker-compose down
Algumas considerações sobre alterações durante a sessão do contêiner.
- Tudo o que você criar, alterar ou modificar existirá enquanto o contêiner existir.
- Depois que o contêiner for excluído, todas as alterações, etc., desaparecerão.
- Isso pode ser incômodo em configurações grandes.
- O Dockerfile cuida de uma configuração que é feita uma vez em um ciclo de compilação, em vez de executar a configuração a cada inicialização do contêiner.
- Essa é uma boa prática em pacotes OEX, embora eu