sidebar_position: 3 title: Docker Deployment keywords: [“docker”, “Deployment”] description: Docker Deployment

This article introduces the use of docker to deploy the Apache ShenYu gateway.

Before you read this document, you need to complete some preparations before deploying Shenyu according to the Deployment Prerequisites document.

Start Apache ShenYu Admin

> docker pull apache/shenyu-admin:${current.version}
> docker network create shenyu

After version 2.5.1, when docker run, we can customize JVM startup parameters by adding -e ADMIN_JVM="xxxx"

  • use h2 to store data:
> docker run -d -p 9095:9095 --net shenyu apache/shenyu-admin:${current.version}
docker run -v /${your_work_dir}/ext-lib:/opt/shenyu-admin/ext-lib -e "SPRING_PROFILES_ACTIVE=mysql" -e "spring.datasource.url=jdbc:mysql://${your_ip_port}/shenyu?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&zeroDateTimeBehavior=convertToNull" -e "spring.datasource.username=${your_username}" -e "spring.datasource.password=${your_password}" -d -p 9095:9095 --net shenyu apache/shenyu-admin:${current.version}

another way is to put the application.ymlapplication-mysql.ymlapplication-pg.ymlapplication-oracle.yml configuration in ${your_work_dir}/conf from Configure address , modify the configuration spring.profiles.active = mysql in application.yml, and then execute the following statement:

docker run -v ${your_work_dir}/conf:/opt/shenyu-admin/conf -v /${your_work_dir}/ext-lib:/opt/shenyu-admin/ext-lib -d -p 9095:9095 --net shenyu apache/shenyu-admin:${current.version}
  • use PostgreSql to store data, follow the guide document to initialize the database, execute the following statement:
docker run -e "SPRING_PROFILES_ACTIVE=pg" -e "spring.datasource.url=jdbc:postgresql://${your_ip_port}/shenyu?useUnicode=true&characterEncoding=utf-8&useSSL=false" -e "spring.datasource.username=${your_username}" -e "spring.datasource.password=${your_password}" -d -p 9095:9095 --net shenyu apache/shenyu-admin:${current.version}

another way is to put the application.ymlapplication-mysql.ymlapplication-pg.ymlapplication-oracle.yml configuration in ${your_work_dir}/conf, modify the configuration spring.profiles.active = pg in application.yml,and then execute the following statement:

docker run -v ${your_work_dir}/conf:/opt/shenyu-admin/conf -d -p 9095:9095 --net shenyu apache/shenyu-admin:${current.version}
  • use Oracle to store data, follow the guide document to initialize the database, execute the following statement:
docker run -e "SPRING_PROFILES_ACTIVE=oracle" -e "spring.datasource.url=jdbc:oracle:thin:@localhost:1521/shenyu" -e "spring.datasource.username=${your_username}" -e "spring.datasource.password=${your_password}" -d -p 9095:9095 --net shenyu apache/shenyu-admin:${current.version}

another way is to put the application.ymlapplication-mysql.ymlapplication-pg.ymlapplication-oracle.yml configuration in ${your_work_dir}/conf, modify the configuration spring.profiles.active = oracle in application.yml, and then execute the following statement:

docker run -v ${your_work_dir}/conf:/opt/shenyu-admin/conf -d -p 9095:9095 --net shenyu apache/shenyu-admin:${current.version}

Start Apache ShenYu Bootstrap

After version 2.5.1, when docker run, we can customize JVM startup parameters by adding -e BOOT_JVM="xxxx"

In the host, the directory where the bootstrap configuration file is located is recorded as $BOOTSTRAP_CONF.

> docker network create shenyu
> docker pull apache/shenyu-bootstrap:${current.version}
> docker run -d \
  -p 9195:9195 \
  -v $BOOTSTRAP_CONF:/opt/shenyu-bootstrap/conf \
  apache/shenyu-bootstrap:${current.version}