我正在使用 Docker 在 Fargate 中设置 Grafana。一旦 Grafana 容器处于活动状态,是否有一个我可以调用的端点,Fargate 可以使用该端点来确定容器是否“健康”?
例如:http://grafana/healthy 或 http://grafana/status
谢谢!
我创建了一个全局 JKS,其密钥库密码为“changeme”。我使用 Keystore Explorer 创建了 JKS。
使用全局 JKS 背后的想法是应用程序可以从 S3 中拉取 JKS,然后使用自己的字符串密码重置 JKS。我们使用了很多 SpringBoot API,并使用 JKS 来保护容器中的 Tomcat,以便我们可以连接 HTTPS。
但这是我遇到的问题,当我更改 JKS 密钥库密码时,我开始抛出java.security.UnrecoverableKeyException: Cannot recover key错误。
在密钥库资源管理器中,我没有为别名指定密码。当我进入密钥库资源管理器更改别名密码时,它接受“changeme”作为密码。因此,我假设密钥库资源管理器会自动使用 Changeme 作为密码,因为我为 JKS 密钥库密码提供了它。
诚然,我不是使用 JKS 和了解安全性复杂性的专家,但这让我难住了。
我还尝试使用以下命令使用 Keytool 更改密钥库密码:
keytool -storepasswd -keystore myJKS.jks
Run Code Online (Sandbox Code Playgroud)
和
keytool -keypasswd -alias myalias -keystore myJKS.jks
Run Code Online (Sandbox Code Playgroud)
但是当我尝试更改别名时,我得到:
keytool错误:java.io.IOException:密钥库被篡改,或密码不正确
我究竟做错了什么?
谢谢
我开发了一个 SpringBoot(Java) 应用程序,该应用程序在端口 1433 上调用外部 SQL Server。SQL Server 实例位于本地(不是本地 SQL Server 实例)。但是,可以使用 IntelliJ 或 SQL 客户端从我的桌面访问它。
我正在使用 Microsoft SQL Server JDBC 连接器与实例进行通信。
如果我从 IntelliJ 运行该应用程序,一切顺利,该应用程序可以调用 SQL Server,执行命令并返回结果集。
然而,现在我正在尝试 Dockerize api 应用程序。容器执行通常的 SpringBoot 初始化,但是当它尝试调用 SQL Server 时,出现以下错误:
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host myexternalsqlserver.domain, port 1433 has failed. Error: "myexternalsqlserver.domain. Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to …Run Code Online (Sandbox Code Playgroud) 我目前有一个 bash 脚本,它通过启动 3 个容器来“模拟”ECS 任务。一些容器直接从 Secrets Manager 中提取其机密和配置覆盖(例如,它被烘焙到容器代码中),而其他容器则具有使用 Docker 环境变量完成的配置覆盖,这需要首先从 ASM 检索机密,导出到变量,然后使用刚刚导出的环境变量启动容器。这工作得很好,而且这只是为了让开发人员在他们的工作站上进行本地测试。我们不使用 Docker-Compose 进行部署。当前的 bash 脚本调用 AWS 并将值导出到环境变量。
不过,我想继续使用 Docker Compose。我的问题是“Docker Compose 有没有办法调用 AWS 并获取秘密?”
我没有看到使用 Docker Compose 执行此操作的本机方法,因此我正在考虑出去获取所有容器的所有秘密。因此,我当前的脚本将被修改以执行此操作:
如果我根本不必使用 bash 脚本,那就太好了,但我知道没有任何内在方法可以从 Docker-Compose yaml 中的 Secrets Manager 中提取机密。这可能吗?
我们刚刚将 Artifactory 引入我们的组织。我们有很多 Fargate 堆栈从 ECR 中提取 Docker 镜像。我们现在想要在 Artifactory 中转储和存储 Docker 镜像,并告诉 Fargate 从 Artifactory 中提取镜像。
有谁知道如何做到这一点?
谢谢
我有一个在 .NetCore 3.1 中创建的 API,并使用 Swashbuckle 启用了 Swagger(OAS3)。默认情况下,当我的应用程序启动时,如果使用此 URL 显示 Swagger 页面:
http://{port}/swagger.index.html
Run Code Online (Sandbox Code Playgroud)
我想自定义 Swagger URL,以便它包含正在运行的应用程序的名称。我这样做的原因是我在 AWS Fargate 中运行 Nginx 时使用基于路径的路由。
我将在 Fargate 任务中运行多个 API 容器,Nginx 将接收来自应用程序负载均衡器和路径(例如 /api/app1)的 REST 请求,它将请求路由到目标应用程序的正确容器端口.
例如,我有三个应用程序:端口 5000 上的 App1、端口 5001 上的 App2 和端口 5003 上的 App3。
如果用户向https://api/app1发出请求,Nginx 将检测路径并将请求转发到端口 5000,这是 App1 的容器端口。
但是,为了确保出现正确的 Swagger 页面,我需要在 Swagger 的 URL 中添加“api/App1”,以便 Nginx 将请求转发到正确的容器。在本例中,它是 App1。
换句话说,我希望我的 Swagger URL 看起来像这样:
https://api/app1/swagger/index.html
Run Code Online (Sandbox Code Playgroud)
我试过的
在我的 Startup.cs 文件中,我添加了以下内容:
// Define prefix for application
private readonly string baseApplicationRoute = "api/app1";
// Enable …Run Code Online (Sandbox Code Playgroud) docker ×4
aws-fargate ×2
spring-boot ×2
amazon-ecr ×1
artifactory ×1
asp.net-core ×1
bash ×1
c# ×1
connection ×1
explorer ×1
grafana ×1
java ×1
jks ×1
keystore ×1
openapi ×1
sql-server ×1
swagger ×1
swashbuckle ×1