使用Docker Containerized Spring Boot App的HTTPS无效

时间:2016-12-08 04:52:17

标签: docker spring-boot https spring-cloud

以下是我添加到application.properties文件以启用HTTPS的条目:

server.port: 80
server.ssl.key-store: classpath:keystore.p12
server.ssl.key-store-password: password
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: tomcat

当我启动docker容器时,无法使用HTTPS访问url。但是,如果我纪念上述行,http是可访问的。这是应用程序作为docker image运行的时候。

如果我在本地计算机上运行spring boot app,https正在运行。不确定有什么问题或遗漏。

有关信息,我正在使用以下Docker撰写文件:

ms1:
  image: aa/ms1:localubuntu
  mem_limit: 512
  environment:
    SPRING_PROFILES_ACTIVE: docker-development-cloud
    JAVA_OPTS: -Xms256m -Xmx512m
  build:
    context: ../../
    dockerfile: ms1/src/main/dockerBuildRelease/Dockerfile
  ports:
    - "443:443"
  restart: always
  networks:
    - cloud

1 个答案:

答案 0 :(得分:0)

为了使其能够在Docker上运行,您需要:

  • 使用有效端口启动服务器(有效,我的意思是443或其他非保留端口,例如8443)。如您所知,这可以通过在server.port文件
  • 中设置application.yml属性来完成
  • 公开docker-compose.yml文件中的服务器端口。请记住,语法为host:container,因此假设您在端口443上配置了Spring Boot应用程序,并希望将其公开给主机上的端口8443,那么端口配置将看起来像是:8443:443

此外,我在image文件中同时使用builddocker-compose.yml似乎很奇怪。