首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使应用程序属性从docker-组合文件中的环境变量中选择

如何使应用程序属性从docker-组合文件中的环境变量中选择
EN

Stack Overflow用户
提问于 2018-02-22 12:23:16
回答 1查看 2.6K关注 0票数 1

我正在尝试创建一个带有env变量的对接者映像,我在docker -复合文件中设置了这些变量。但是他们并没有映射到应用程序properties.Could,有人请解释我哪里出错了。

Dockerfile

代码语言:javascript
复制
FROM java:8-jre-alpine
ARG TEST_DB_USERNAME
ARG TEST_DB_PASSWORD
ARG TEST_SERVER_PORT
ARG TEST_DATASOURCE_DRIVER
ARG TEST_DATASOURCE_URL
ARG TEST_DATABASE_PLATFORM
ARG TEST_PROFILE

ENV spring.datasource.url $TEST_DATASOURCE_URL
ENV spring.datasource.username $TEST_DB_USERNAME
ENV spring.datasource.password $TEST_DB_PASSWORD
ENV spring.datasource.driver-class-name $TEST_DATASOURCE_DRIVER
ENV spring.jpa.database-platform $TEST_DATABASE_PLATFORM
ENV spring.profiles.active $TEST_PROFILE
ENV server.port $TEST_SERVER_PORT

ADD target/facilities-management.jar facilities-management.jar
EXPOSE $TEST_SERVER_PORT
ENTRYPOINT  ["java", "-jar", "facilities-management.jar"]

docker-compose.yml

代码语言:javascript
复制
version: '3'

    volumes:
      postgres_data: {}
      postgres_backup: {}
    services:
      postgres:
        build: ../postgres
        ports:
          - 5432:5432
        expose:
          - 5432 # expose the postgres port out so we can attached to the db from the real world. Only for development?
        volumes:
          - postgres_data:/var/lib/postgresql/data
          - postgres_backup:/backups
        restart: unless-stopped
        env_file:
          - .env
      test-server:
          build:
            context: ../../../test-management
          ports:
            - 8080:8080
          restart: unless-stopped
          depends_on:
            - postgres

.env

代码语言:javascript
复制
#TEST Environment Variables
TEST_DATASOURCE_URL=jdbc:postgresql://postgres:5432/postgres
TEST_SERVER_PORT=8081
TEST_DATASOURCE_DRIVER=org.postgresql.Driver
TEST_DB_USERNAME=postgres
TEST_DB_PASSWORD=123456
TEST_DATABASE_PLATFORM=org.hibernate.dialect.PostgreSQLDialect
TEST_PROFILE=sql_server

当我做码头组合时,我会得到以下错误:

错误:

代码语言:javascript
复制
There is no active profile set

Cannot determine embedded database driver class for database type NONE.
Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]
EN

回答 1

Stack Overflow用户

发布于 2018-02-22 12:44:43

尝试在env_file:指令之后添加以下内容

代码语言:javascript
复制
....
env_file:
      - .env
environment:
spring.datasource.url $TEST_DATASOURCE_URL
spring.datasource.username $TEST_DB_USERNAME
spring.datasource.password $TEST_DB_PASSWORD
......

因为环境变量不会在构建时持久化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48927342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档