我有一个由DockerfileDigital Ocean Apps部署的Spring Boot应用程序.当我想要设置环境变量(如spring.datasource.url)时,我得到以下错误:

Can only contain alphanumeric characters and underscores

如何设置具有此限制的变量?

推荐答案

我收到以下错误:"只能包含字母数字字符 并加下划线". 区块报价

该错误消息很可能意味着环境变量名(您正在try 设置)包含特殊字符(环境变量名中不允许使用这些字符).

如何设置具有此限制的变量?

在您的Spring Boot应用程序中,您可以使用不同的方法设置环境变量:

  1. You can set environment variables (that will be available to your Spring Boot app) in your Dockerfile 例如:
FROM openjdk:11
ENV SPRING_DATASOURCE_URL=jdbc:mysql://localhost/mydb
COPY target/test-app.jar /test-app.jar
CMD ["java", "-jar", "/test-app.jar"]
  1. 您可以在您的数字海洋应用程序配置中为您的应用程序设置环境变量,方法是导航到您的应用程序在数字海洋应用程序仪表板中的设置,并将它们添加到"环境变量"部分.

例如:

name: my-app
services:
  - name: web
    command: java -jar test-app.jar
    envs:
      SPRING_DATASOURCE_URL: jdbc:mysql://localhost/mydb
  1. 您可以使用Base64编码

使用Base64编码:如果您需要在环境变量中包含非字母数字字符,则可以将该值编码为Base64.

例如: You have the environment variable SPRING_DATASOURCE_URL.

  1. 将编码值aHR0cDovL2xvY2FsaG9zdDo4MDgwL2VtYWlsL2VtYWlsLnBocD9wYWdlPTE设置为SPRING_DATASOURCE_URL,而不是实际值http://localhost:8080/email/email.php?page=1.
  2. 然后您就可以对该值进行解码.

Java相关问答推荐

如何在PFA中使用不确定的进度指标制作可暂停的任务?

Quarkus keycloat配置不工作.quarkus. keycloak. policy—enforcer. enable = true在. yaml表示中不工作

@ IdClass with @ Inheritance(策略= InheritanceType. SINGLE_TABLE)

Java记录的不同序列化/反序列化

在Java Swing Paint应用程序中捕获快速鼠标移动时遇到困难

在AVL树的Remove方法中使用NoSuchElementException时遇到问题

Kotlin内联互操作:强制装箱

在Spring Boot应用程序中导致";MediaTypeNotSupportdException&qot;的映像上载

Java-动态绑定-问题-了解

@Rollback @ Transmission在验收测试中不工作

WebSockets和Spring Boot安全性出现错误401

在settings.gradle.kts和Build.gradle.kts中使用公共变量

为什么StandardOpenOption.CREATE不能通过Ubuntu在中小企业上运行?

有谁能帮我修一下这个吗?使输出变得更加整洁

我如何为我的Java抵押贷款代码执行加薪操作(&Q)

使用SWIG将C++自定义单元类型转换为基本Java类型

带有可选部分的Java DateTimeForMatter

try 使用预准备语句占位符获取信息时出现Try-With-Resources错误

在权限列表中找不到我的应用程序

Maven创建带有特定类的Spring Boot jar和普通jar