Sign inSign up

hyness/spring-cloud-config-server

By hyness

•Updated 2 months ago

A docker image of Spring Cloud Config Server

Image
Languages & frameworks
Developer tools
53

10M+

hyness/spring-cloud-config-server repository overview

⁠Spring Cloud Config Server

A docker image of Spring Cloud Config Server⁠.

CI Build Docker Image Version (latest semver) Docker Stars Docker Pulls Image Size License

⁠Supported tags
  • 5.0.4-jre17, 5.0-jre17, jre17, 5.0.4, 5.0, latest
  • 5.0.4-jdk17, 5.0-jdk17, jdk17
  • 5.0.4-jre21, 5.0-jre21, jre21
  • 5.0.4-jdk21, 5.0-jdk21, jdk21
⁠Supported Platforms
  • arm
  • x64
⁠Usage
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 configuration
⁠Environment Variables
  • JAVA_OPTS Specify VM Options or System Properties
⁠Configuring Spring Cloud Config Server

Spring 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
⁠Required Backend Configuration

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 [email protected]: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
⁠MongoDB
docker run -it -p 8888:8888 \
      -e SPRING_PROFILES_ACTIVE=mongodb \
      -e SPRING_MONGO_HOST=localhost
      -e SPRING_MONGO_PORT=27017
      -e SPRING_MONGO_DATABASE=my_db_name
      -e SPRING_MONGO_USERNAME=my_db_username
      -e SPRING_MONGO_PASSWORD=my_db_password
      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
  • Firebird
  • MariaDB
  • MS-SQL
  • Postgres

See the docker-compose examples⁠ for more details

⁠Additional Features
⁠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
⁠Actuator

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

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
⁠Docker Healthcheck

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

⁠Thank You
⁠Project Contributors

Thank you to all the contributors who have helped make this project better through code contributions and bug reports.

Tag summary

Content type

Image

Digest

sha256:5b8b09f71…

Size

197.3 MB

Last updated

2 months ago

docker pull hyness/spring-cloud-config-server