如何正确编写docker编写文件

如何正确编写docker编写文件,docker,docker-compose,Docker,Docker Compose,我已经创建了asp.net核心MVC应用程序。将自签名证书配置为使用https连接,并使用此命令在docker容器中运行它 docker run --rm -it -p 5000:80 -p 5001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORT=5001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="pass

我已经创建了asp.net核心MVC应用程序。将自签名证书配置为使用https连接,并使用此命令在docker容器中运行它

docker run --rm -it -p 5000:80 -p 5001:443 -e ASPNETCORE_URLS="https://+;http://+" -e ASPNETCORE_HTTPS_PORT=5001 -e ASPNETCORE_Kestrel__Certificates__Default__Password="password" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/identitycert.pfx -v ${HOME}/.aspnet/https:/https/ kirillbasic/identityserver
我可以轻松地连接到本地主机。但后来我尝试使用docker-compose.yaml文件,看起来像这样

services:
 identityserver:
  image: kirillbasic/identityserver:test
  ports: 
   - "4999:80"
   - "5000:433"
  environment:
   ASPNETCORE_URLS: https://+;http://+
   ASPNETCORE_HTTPS_PORT: 5000
   ASPNETCORE_Kestrel__Certificates__Default__Password: password
   ASPNETCORE_Kestrel__Certificates__Default__Path: /https/identitycert.pfx
  volumes: ["${HOME}/.aspnet/https:/https/"]

我得到“安全连接失败”。我尝试了不同的打字方法:有括号和没有括号,但没有任何帮助。有人有什么建议吗?为什么会发生这种情况?我如何解决这个问题?

由于3.3 docker compose版本文件中的regex字符,您需要用单引号将该变量括起来。 你能试试这个,看看是否管用吗

version: '3.3'
    services:
        identityserver:
            image: kirillbasic/identityserver
            ports:
                - '5000:80'
                - '5001:443'
            environment:
                - 'ASPNETCORE_URLS=https://+;http://+'
                - ASPNETCORE_HTTPS_PORT=5001
                - ASPNETCORE_Kestrel__Certificates__Default__Password=password
                - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/identitycert.pfx
            volumes:
                - '${HOME}/.aspnet/https:/https/'
            
打字错误(443=>433)