【发布时间】:2017-11-17 22:38:21
【问题描述】:
所以,我已经准备好构建一个 docker 容器,但是,当我构建它时,我需要手动从 docker 容器中启动 mongod。我究竟做错了什么?我从 Dockerfile 启动了 mongod,但看起来有些东西正在杀死进程,或者该进程甚至从未被执行?
FROM microsoft/iis:10.0.14393.206
SHELL ["powershell"]
RUN Install-WindowsFeature NET-Framework-45-ASPNET ; \
Install-WindowsFeature Web-Asp-Net45
COPY Pub Pub
RUN mkdir data\db
COPY mongodb_installer.msi mongodb_installer.msi
RUN Start-Process -FilePath 'mongodb_installer.msi' -ArgumentList '/quiet', '/NoRestart' -Wait ; \
Remove-Item .\mongodb_installer.msi
RUN 'C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe'
RUN Remove-WebSite -Name 'Default Web Site'
RUN New-Website -Name 'Pub' -Port 80 \
-PhysicalPath 'C:\Pub' -ApplicationPool '.NET v4.5'
EXPOSE 80
CMD ["ping", "-t", "localhost"]
当我从 withing 容器启动 mongod 时,我的 web api 应用程序运行良好,需要知道如何设置 mongod 从启动运行?
【问题讨论】:
-
看起来您正试图在单个容器中运行多个进程。这不是 docker 的设计方式。如果您在单独的容器中运行每个进程(Web 服务、mongodb 等),它会更好地工作。
标签: mongodb docker dockerfile docker-container docker-image