我正在尝试创建一个带有env变量的对接者映像,我在docker -复合文件中设置了这些变量。但是他们并没有映射到应用程序properties.Could,有人请解释我哪里出错了。
Dockerfile
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
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
#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当我做码头组合时,我会得到以下错误:
错误:
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]发布于 2018-02-22 12:44:43
尝试在env_file:指令之后添加以下内容
....
env_file:
- .env
environment:
spring.datasource.url $TEST_DATASOURCE_URL
spring.datasource.username $TEST_DB_USERNAME
spring.datasource.password $TEST_DB_PASSWORD
......因为环境变量不会在构建时持久化。
https://stackoverflow.com/questions/48927342
复制相似问题