私の目標は、次のことができるコンテナーを作成することです。
- 入力データ
- 実行可能 (.exe) ファイルのデータを処理する
- 加工データ出力
NodeJS を使用して、REST を使用した入出力を処理したいと考えています。そのため、実行可能ファイルの依存関係と共に NodeJS をコンテナーにインストールする必要があります。
私の Dockerfile は次のようになります。
FROM microsoft/windowsservercore
COPY installers installers
COPY sources sources
COPY ProjectXYZ ProjectXYZ
# Install NodeJS and dependencies
RUN cd C:\installers && \
msiexec.exe /qn /i "node-v8.11.3-x64.msi" && \
Jet40SP8_9xNT.exe /Q && \
setup.exe /configure configuration.xml && \
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:C:\sources\sxs && \
DISM /Online /Enable-Feature /FeatureName:NetFx4 /All /LimitAccess && \
cd C:\ && \
rmdir /s /q sources && \
rmdir /s /q installers
# Start the service
ENTRYPOINT "cd C:/ProjectXYZ && node server.js"
この Dockerfile は、一部のダウンロードのために時間がかかりますが、正常にビルドされます。
PS C:\projectxyz> docker build -t projectxyz .
Sending build context to Docker daemon 207.1MB
Step 1/6 : FROM microsoft/windowsservercore
---> 7d89a4baf66c
Step 2/6 : COPY installers installers
---> Using cache
---> 1538d7a0ba9d
Step 3/6 : COPY sources sources
---> Using cache
---> 659167fb1238
Step 4/6 : COPY HiperPlantNodeJS HiperPlantNodeJS
---> Using cache
---> e8295924e730
Step 5/6 : RUN cd C:\installers && Jet40SP8_9xNT.exe /Q && msiexec.exe /qn /i "node-v8.11.3-x64.msi" && setup.exe /configure configuration.xml && DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:C:\sources\sxs && DISM /Online /Enable-Feature /FeatureName:NetFx4 /All /LimitAccess && cd C:\ && rmdir /s /q sources && rmdir /s /q installers
---> Using cache
---> 1ebbf13b0d3c
Step 6/6 : ENTRYPOINT "cd C:/HiperPlantNodeJS && node server.js"
---> Running in c8a8af429021
Removing intermediate container c8a8af429021
---> c042e6756ef4
Successfully built c042e6756ef4
Successfully tagged projectxyz:latest
PS C:\projectxyz>
ただし、ビルドされたイメージを実行すると、常にタイムアウト エラーが発生します。
PS C:\projectxyz> docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
projectxyz latest 1519b739fc1d 7 minutes ago 14.4GB
microsoft/windowsservercore latest 7d89a4baf66c 5 weeks ago 10.7GB
PS C:\projectxyz> docker run --name=xyz01 -p 8765:4321 -d hpnodejs-cmd
74b8a68f25dac38fa715611d597c017b63ba1376974f63f91e10c645df5b2e0e
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: container 74b8a68f25dac38fa715611d597c017b63ba1376974f63f91e10c645df5b2e0e encountered an error during Start: failure in a Windows system call: This operation returned because the timeout period expired. (0x5b4)
しかし、イメージをインタラクティブに (依存関係なしで) 実行し、依存関係をコンテナーに手動でインストールすると、すべてが正常に機能します。コンテナーとプロジェクトは期待どおりに実行されます。
私が作成しようとしているシステムでは、このコンテナーの複数のコピーを作成し、それぞれをデタッチ モードで実行する必要があります。したがって、各コンテナーの依存関係を手動でインストールすることは、すでに問題外です。
主な質問: このイメージを正常に実行するにはどうすればよいですか?
大きな画像の実行に制限はありますか? ご覧のとおり、依存関係をインストールした後、イメージは 14.5 GB になりました。ドキュメントでそれについての言及を見つけることができませんでした。
あなたの助けに感謝..