【问题标题】:persist %USERPROFILE% folder using docker compose volume使用 docker compose volume 持久化 %USERPROFILE% 文件夹
【发布时间】:2022-02-25 21:58:12
【问题描述】:

我正在搜索如何在卷安装中保留用户配置文件文件夹

我有文件夹 C:\Users\ABEL\source\repos 需要为 Windows 容器保留。用户名应该来自主机。未知。

以下是我的 docker-compose 文件,卷部分不正确。 任何 cmets 都会有所帮助。提前致谢

version: '3.4'

services:
  directoryservice:
    image: abc-directoryservice:latest
    build: .
    ports:
      - "44309:44309"
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:44309;
      - ASPNETCORE_Kestrel__Certificates__Default__Password=welcome123#
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
    volumes:
      - ./devops/https/abccert.pfx:/https/aspnetapp.pfx:ro
      # - "$env:USERPROFILE/source:$env:USERPROFILE/source"
      - ${Env:USERPROFILE}\source:${Env:USERPROFILE}\source

我得到以下错误

invalid interpolation format for services.directoryservice.volumes.[]: "${Env:USERPROFILE}\\source:${Env:USERPROFILE}\\source". You may need to escape any $ with another $.

【问题讨论】:

    标签: docker powershell docker-compose docker-volume


    【解决方案1】:

    $env:USERPROFILE/${env:USERPROFILE} 语法特定于 PowerShell

    根据the docs判断,docker-compose使用自己的语法:$USERPRPOFILE / ${USERPROFILE}


    您报告了一个后续问题,即存储在$USERPROFILE (%USERPROFILE%)(例如C:\Users\jdoe\source)中的 Windows 样式路径未转换为 Unix 样式路径(例如c/Users/jdoe/source

    This answer 建议您必须将环境变量COMPOSE_CONVERT_WINDOWS_PATHS 设置为1在运行您的docker-compose 命令之前

    例如,在 PowerShell 会话中:

    $env:COMPOSE_CONVERT_WINDOWS_PATHS=1
    

    考虑将此语句添加到您的 $PROFILE file,以便它在未来的 PowerShell 会话中也生效。

    【讨论】:

    • 感谢您对 promt 的支持。回答很有帮助。
    • 我很高兴听到它,@AbelK.Bil;我的荣幸。
    猜你喜欢
    • 1970-01-01
    • 2018-10-24
    • 2020-09-02
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 2021-10-21
    • 1970-01-01
    • 2021-01-15
    相关资源
    最近更新 更多