Я пытаюсь настроить контейнер Docker для Windows для создания и размещения простого статического веб-сайта с использованием lite-server и Sphinx. Сначала я запускаю контейнер.
$ docker run -it -p 8080:8080 -v "$(pwd):C:\src" website
А затем запустите lite-сервер.
$ yarn serve
Веб-сайт доступен с IP-адреса контейнера (например, http://172.26.141.28:8080
), поэтому я знаю, что lite-server обслуживает контент, но я не могу получить доступ к контенту с помощью http://localhost:8080
.
Как я могу открыть веб-сайт через localhost: 8080?
Мой Dockerfile выглядит следующим образом
FROM microsoft/windowsservercore
ENV chocolateyUseWindowsCompression false
RUN powershell -Command \
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'));
RUN choco install nodejs -y
RUN choco install yarn -y
RUN choco install python3 -y
RUN pip install sphinx
RUN pip install sphinx_rtd_theme
# https://github.com/nodejs/node/issues/8897#issuecomment-319010735
# Workaround for error An unexpected error occurred: "ENOENT: no such file or directory, lstat 'C:\\ContainerMappedDirectories'".
RUN mkdir C:\src
RUN powershell Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices' -Name 'S:' -Value '\??\C:\src' -Type String
WORKDIR 'S:\\'
EXPOSE 8080
CMD ["powershell"]
lite-сервер запускается с
"scripts": {
"serve": "light-server -s ./build/html -p 8080"
},
Программного обеспечения:
- Докер версии 17.06.2-ce, сборка cec0b72
- Windows 10 (хост)
- Windowsservercore (контейнер)