默认docker-compose.override文件中APPDATA在哪里初始化

Where does APPDATA get initialized in the default docker-compose.override file

下面我将展示默认的 docker-compose.override.yml 文件,该文件是在将编排添加到我的 ASP.NET 应用程序时为我创建的。这是使用 .NET Core 3.1。我右键单击项目文件 -> 添加 -> Container Orchestrator Support... 并将 docker-compose 项目添加到我的解决方案中。 (显然我在选项中选择了 Docker Compose )。

我想知道在哪里初始化变量APPDATA,这样我就可以了解完整路径。我了解卷的工作原理;我只是想知道 APPDATA 的初始化方式和位置。

version: '3.4'

services:
  myproject:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
    ports:
      - "80"
      - "443"
    volumes:
      - ${APPDATA}/Microsoft/UserSecrets:C:\Users\ContainerUser\AppData\Roaming\Microsoft\UserSecrets:ro
      - ${APPDATA}/ASP.NET/Https:C:\Users\ContainerUser\AppData\Roaming\ASP.NET\Https:ro

我知道这是一个旧的 post,您可能已经明白了,但是 APPDATA 是内置于 Windows 的变量。

如果你打开Windows资源管理器或运行并在APPDATA前后粘贴%你会得到路径。

需要使用$APPDATA指向WindowsAppData文件夹:

docker-compose.yml

version: "3.8"

..

  net_core_service:
    ..
    environment:
      # should be defined Development-env to allow loading user-secrets located on the local computer.
      - ASPNETCORE_ENVIRONMENT=Development
    ..
    volumes:
      # map the dotnet user-secret folder
      - $APPDATA/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
    ..

..

Docker 示例(使用 %APPDATA%):

docker run ^
  -e ASPNETCORE_ENVIRONMENT=Development ^
  -v %APPDATA%/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro  ^
  company/image:latest