1

WSL2 上的 Windows 10 Docker 桌面

目标:通过我的本地网络从我的 devcontainer 提供一个 Angular 应用程序(专门用于在移动设备上进行测试)

复制:

  1. 在干净的 git repo 中创建一个 hello world angular 应用程序
  2. 将 repo 克隆到一个新的 devcontainer (Typescript/Node)
  3. 服务于应用程序

我尝试过的事情(以及这里的每一个排列):

  • --network=host(从未在 Windows 上工作过,但认为它可能在 WSL2 上 - 没有)
  • 暴露 4200
  • 运行参数:“-p 4200:4200”
  • 应用端口:[4200]
  • 在 PC 防火墙上打开 4200 端口
  • ng 服务 --host 0.0.0.0 --port 4200

附加信息:

  • ng serve确实允许我在我的主机上查看该站点
  • 将 repo 克隆到我的主机并运行ng serve --host 0.0.0.0 确实 允许我通过我的网络访问该站点(但进出 devcontainer 是不合理的)

我的电流DockerFile很普通:

ARG VARIANT="14-buster"
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-${VARIANT}

RUN npm install -g @angular/cli
RUN npm i yalc -g

我的devcontainer.js文件也没有改变(除了添加一个卷)

// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.187.0/containers/typescript-node
{
    "name": "Node.js & TypeScript",
    "build": {
        "dockerfile": "Dockerfile",
        "args": { 
            "VARIANT": "14"
        }
    },

    "settings": {},

    "extensions": [
        "dbaeumer.vscode-eslint"
    ],

    "remoteUser": "node",
    "mounts": ["source=D:/GIT/docker/volumes/yalk,target=/yalc,type=bind,consistency=cached"],
}
4

1 回答 1

1

DockerFile

ARG VARIANT="14-buster"
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-${VARIANT}

RUN npm install -g @angular/cli
RUN npm i yalc -g

# this line
EXPOSE 4201

devcontainer.json

// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.187.0/containers/typescript-node
{
    "name": "Node.js & TypeScript",
    "build": {
        "dockerfile": "Dockerfile",
        "args": { 
            "VARIANT": "14"
        }
    },

    "settings": {},

    "extensions": [
        "dbaeumer.vscode-eslint"
    ],

    "forwardPorts": [4201], // <-- this line

    "remoteUser": "node",
    "mounts": ["source=D:/GIT/docker/volumes/yalk,target=/yalc,type=bind,consistency=cached"],
}

运行 Angular 应用程序: ng serve --host=0.0.0.0 --port=4201

我以为我以前试过这个,也许它不起作用但现在开始了Docker Desktop 4.1.1 (69879)

于 2021-10-19T18:47:25.050 回答