hyness/spring-cloud-config-server
A docker image of Spring Cloud Config Server
10M+
A docker image of Spring Cloud Config Server.
4.1.4-jre17
, 4.1-jre17
, jre17
, 4.1.4
, 4.1
, latest
4.1.4-jdk17
, 4.1-jdk17
, jdk17
4.1.4-jre21
, 4.1-jre21
, jre21
4.1.4-jdk21
, 4.1-jdk21
, jdk21
Build updates for 4.x
docker run -it --name=spring-cloud-config-server \
-p 8888:8888 \
-v </path/to/config>:/config \
hyness/spring-cloud-config-server
Parameters
-p 8888
Server port-v /config
Mounted configurationEnvironment Variables
JAVA_OPTS
Specify VM Options or System PropertiesSpring Cloud Config Server is a normal Spring Boot application, it can be configured through all the ways a Spring Boot application can be configured. You may use environment variables or you can mount configuration in the provided volume. The configuration file must be named application and may be a properties or yaml file. See the Spring Boot documentation for further information on how to use and configure Spring Boot.
Configuration examples
Using a mounted config directory
docker run -it -p 8888:8888 \
-v /path/to/config/dir:/config \
hyness/spring-cloud-config-server
Using a mounted application.yml
docker run -it -p 8888:8888 \
-v /path/to/application.yml:/config/application.yml \
hyness/spring-cloud-config-server
Configure through environment variables without a configuration file
docker run -it -p 8888:8888 \
-e SPRING_CLOUD_CONFIG_SERVER_GIT_URI=https://github.com/spring-cloud-samples/config-repo \
hyness/spring-cloud-config-server
Configure through system properties without a configuration file
docker run -it -p 8888:8888 \
-e JAVA_OPTS=-Dspring.cloud.config.server.git.uri=https://github.com/spring-cloud-samples/config-repo \
hyness/spring-cloud-config-server
Configure through command line arguments without a configuration file
docker run -it -p 8888:8888 \
hyness/spring-cloud-config-server \
--spring.cloud.config.server.git.uri=https://github.com/spring-cloud-samples/config-repo
Verify Samples Above
$ curl http://localhost:8888/foo/development
Spring Cloud Config Server requires that you configure a backend to serve your configuration files
Git
Remote https git repo example
docker run -it -p 8888:8888 \
-e SPRING_CLOUD_CONFIG_SERVER_GIT_URI=https://github.com/spring-cloud-samples/config-repo \
hyness/spring-cloud-config-server
Remote ssh git repo example
docker run -it -p 8888:8888 \
-v /path/to/home/dir/with/ssh/keys:/home/cnb/.ssh \
-e SPRING_CLOUD_CONFIG_SERVER_GIT_URI=git@github.com:spring-cloud-samples/config-repo \
hyness/spring-cloud-config-server
Local git repo example
docker run -it -p 8888:8888 \
-v /path/to/config/files/dir:/config \
-e SPRING_CLOUD_CONFIG_SERVER_GIT_URI=file:/config/my-local-git-repo \
hyness/spring-cloud-config-server
Filesystem
docker run -it -p 8888:8888 \
-v /path/to/config/files/dir:/config \
-e SPRING_PROFILES_ACTIVE=native \
hyness/spring-cloud-config-server
Vault
docker run -it -p 8888:8888 \
-e SPRING_PROFILES_ACTIVE=vault \
-e SPRING_CLOUD_CONFIG_SERVER_VAULT_HOST=localhost \
-e SPRING_CLOUD_CONFIG_SERVER_VAULT_TOKEN=00000000-0000-0000-0000-000000000000 \
hyness/spring-cloud-config-server
AWS Parameter Store
docker run -it -p 8888:8888 \
-e SPRING_PROFILES_ACTIVE=awsparamstore \
-e SPRING_CLOUD_CONFIG_SERVER_AWSPARAMSTORE_REGION=us-east-1 \
hyness/spring-cloud-config-server
AWS S3
docker run -it -p 8888:8888 \
-e SPRING_PROFILES_ACTIVE=awss3 \
-e SPRING_CLOUD_CONFIG_SERVER_AWSS3_REGION=us-east-1 \
-e SPRING_CLOUD_CONFIG_SERVER_AWSS3_BUCKET=sample-bucket \
hyness/spring-cloud-config-server
AWS Secrets Manager
docker run -it -p 8888:8888 \
-e SPRING_PROFILES_ACTIVE=awssecretsmanager \
-e SPRING_CLOUD_CONFIG_SERVER_AWSSECRETSMANAGER_REGION=us-east-1 \
hyness/spring-cloud-config-server
Redis
docker run -it -p 8888:8888 \
-e SPRING_PROFILES_ACTIVE=redis \
-e SPRING_DATA_REDIS_HOST=localhost
-e SPRING_DATA_REDIS_PORT=6379
hyness/spring-cloud-config-server
JDBC
docker run -it -p 8888:8888 \
-e SPRING_PROFILES_ACTIVE=jdbc \
-e SPRING_DATASOURCE_URL=jdbc:postgresql://localhost:5432/database_name \
-e SPRING_DATASOURCE_USERNAME=myuser \
-e SPRING_DATASOURCE_PASSWORD=mypassword \
hyness/spring-cloud-config-server
Supported Databases
See the docker-compose examples for more details
Push notifications with Spring Cloud Bus
Spring Cloud Bus links the nodes of a distributed system with a lightweight message broker. It allows clusters of applications configured with RefreshScope to automatically reload configuration without restarting.
See the Spring Cloud Conifg and Spring Cloud Bus documentation for more details
Supported Message Brokers
Kafka
docker run -it -p 8888:8888 \
-e SPRING_PROFILES_ACTIVE=cloud-bus-kafka \
-e SPRING_CLOUD_CONFIG_SERVER_GIT_URI=https://github.com/spring-cloud-samples/config-repo \
-e SPRING_KAFKA_BOOTSTRAP-SERVERS=localhost:9092 \
hyness/spring-cloud-config-server
RabbitMQ
docker run -it -p 8888:8888 \
-e SPRING_PROFILES_ACTIVE=cloud-bus-rabbit \
-e SPRING_CLOUD_CONFIG_SERVER_GIT_URI=https://github.com/spring-cloud-samples/config-repo \
-e SPRING_RABBITMQ_HOST=localhost \
hyness/spring-cloud-config-server
The Spring Boot actuator is
enabled by default. See the Spring Boot documentation
for configuration options. The actuator can be disabled entirely by including the no-actuator
profile
Prometheus Metrics
To enable support for an additional prometheus metrics endpoint, enable the prometheus
endpoint, as well as ensuring the
endpoint is exposed.
docker run -it -p 8888:8888 \
-v /path/to/config/files/dir:/config \
-e SPRING_CLOUD_CONFIG_SERVER_GIT_URI=file:/config/my-local-git-repo \
-e MANAGEMENT_ENDPOINT_PROMETHEUS_ENABLED=true \
-e MANAGEMENT_ENDPOINTS_WEB_EXPOSURE_INCLUDE=health,prometheus \
hyness/spring-cloud-config-server
Spring Security can be enabled through the security
profile for use with any backend of your choosing.
Basic / Form Security (with remote git backend)
docker run -it -p 8888:8888 \
-e SPRING_PROFILES_ACTIVE=security \
-e SPRING_SECURITY_USER_NAME=myuser \
-e SPRING_SECURITY_USER_PASSWORD=mypassword \
-e SPRING_CLOUD_CONFIG_SERVER_GIT_URI=https://github.com/spring-cloud-samples/config-repo \
hyness/spring-cloud-config-server
Starting with 4.1.x, this docker image includes an internal health checker for use with docker or docker compose using Tiny Health Checker.
Example configuration
healthcheck:
test: ["CMD", "health-check"]
start_interval: 30s
interval: 5s
retries: 10
See the full example for more details
Project Contributors
Thank you to all the contributors who have helped make this project better through code contributions and bug reports.
docker pull hyness/spring-cloud-config-server