« Docker » : différence entre les versions
(Page créée avec « =Utilisation de container Docker= ==Création de l'image== * Copier le répertoire serveur sur la machine de build * Ajouter un répertoire MSI et copier les .msi d'insta... ») |
|||
(3 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 4 : | Ligne 4 : | ||
* Copier le répertoire serveur sur la machine de build | * Copier le répertoire serveur sur la machine de build | ||
* Ajouter un répertoire MSI et copier les .msi d'installation (sqlncli.msi) | * Ajouter un répertoire MSI et copier les .msi d'installation (sqlncli.msi) | ||
* Configurer le fichier .ini avec les options par défaut | |||
* Ajouter le fichier Dockerfile | * Ajouter le fichier Dockerfile | ||
* Executer la commande de build | * Executer la commande de build | ||
Ligne 17 : | Ligne 18 : | ||
# Metadata indicating an image maintainer. | # Metadata indicating an image maintainer. | ||
LABEL maintainer=" | LABEL maintainer="sylvain.frere@sage.com" | ||
# Set registry for CTRL_SHUTDOWN_EVENT | # Set registry for CTRL_SHUTDOWN_EVENT | ||
Ligne 39 : | Ligne 40 : | ||
EXPOSE 443 | EXPOSE 443 | ||
ENTRYPOINT ["servicel1000.exe", "-name", " | ENTRYPOINT ["servicel1000.exe", "-name", "XXXX"] | ||
#CMD ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"] | #CMD ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"] | ||
</pre> | </pre> | ||
Ligne 56 : | Ligne 57 : | ||
En cas de problème construisez une image avec la commande PowerShell et tester en ligne de commande depuis PowerShell. | En cas de problème construisez une image avec la commande PowerShell et tester en ligne de commande depuis PowerShell. | ||
[[Category:Version920]] | |||
[[Category:Latest]] | [[Category:Latest]] |
Dernière version du 31 mai 2021 à 09:06
Utilisation de container Docker
Création de l'image
- Copier le répertoire serveur sur la machine de build
- Ajouter un répertoire MSI et copier les .msi d'installation (sqlncli.msi)
- Configurer le fichier .ini avec les options par défaut
- Ajouter le fichier Dockerfile
- Executer la commande de build
Dockerfile :
- Partir de windows server core
# Sample Dockerfile # Indicates that the windowsservercore image will be used as the base image. FROM mcr.microsoft.com/windows/servercore:ltsc2019 # Metadata indicating an image maintainer. LABEL maintainer="[email protected]" # Set registry for CTRL_SHUTDOWN_EVENT USER ContainerAdministrator RUN reg add hklm\system\currentcontrolset\services\cexecsvc /v ProcessShutdownTimeoutSeconds /t REG_DWORD /d 7200 RUN reg add hklm\system\currentcontrolset\control /v WaitToKillServiceTimeout /t REG_SZ /d 7200000 /f RUN mkdir "c:\install" ADD MSI/sqlncli.msi c:/install/sqlncli.msi #ADD MSI/MsSqlCmdLnUtils.msi c:/install/MsSqlCmdLnUtils.msi WORKDIR "c:\\install" RUN powershell start-Process msiexec.exe -ArgumentList '/i c:\install\sqlncli.msi /qn IACCEPTSQLNCLILICENSETERMS=YES' -Wait #RUN powershell start-Process msiexec.exe -ArgumentList '/i c:\install\MsSqlCmdLnUtils.msi /qn IACCEPTSQLNCLILICENSETERMS=YES' -Wait # Make installation RUN mkdir "C:\Program Files\Sage\Sage 1000 Server" # Copy installation WORKDIR "C:\\Program Files\\Sage\\Sage 1000 Server" COPY . . EXPOSE 443 ENTRYPOINT ["servicel1000.exe", "-name", "XXXX"] #CMD ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]
Commande build
docker build --tag sage1000:910 .
Exécution en container
Commande run
docker run -it -p 443:443 sage1000:910 -name XXXX -server_nodeid YYYY -tcp_add_host HOST:IP
- Tous les paramètres du fichier .ini peuvent être passer en ligne de commande
- Du fait que le host du container est par défaut l'id du container et qu'il change à chaque exécution vous devez définir le nodeId explicitement sur la ligne de commande
- Du fait que le container windows n'est pas capable de résoudre le nom du host docker et que la commande docker --add-host ne marche pas sur windows vous pouvez ajouter des hosts sur la ligne de commande du service
En cas de problème construisez une image avec la commande PowerShell et tester en ligne de commande depuis PowerShell.