将命令行参数传递给AWS Fargate容器

吉尔斯·汤普森

我们正在使用Terraform动态启动AWS ECS / Fargate容器以运行Spring Boot Application,并且需要将多个命令行参数传递给应用程序。可用的文档似乎建议正确的方法是在Terraform容器定义JSON中定义一个“命令”块,并在其中指定一个或多个参数。这是我当前的容器定义:

 [{
"name": "${environment}-${app_name}",
"image": "${app_image}",
"cpu": ${fargate_cpu},
"memory": ${fargate_memory},
"networkMode": "awsvpc",
"command": [
   "--server.port",
   "${app_port}"
],
"logConfiguration": {
    "logDriver": "awslogs",
    "options": {
      "awslogs-group": "${environment}-${app_name}",
      "awslogs-region": "${aws_region}",
      "awslogs-stream-prefix": "ecs"
    }
},
"portMappings": [
  {
    "containerPort": ${app_port},
    "hostPort": ${app_port}
  }
]}]

您将注意到,我已经使用参数--server.port定义了命令块并将其值设置为app_port变量。但是,在部署时,容器内部运行的Spring Boot应用程序不会使用此参数,而是使用默认端口。

我的问题很简单:如何为在Fargate容器中运行的应用程序指定命令行参数?

Adiii

由于语法的原因,您似乎正在传递系统属性。在推送其云之前,您可以轻松地在本地系统上对其进行测试。

docker run -it --net host --rm sprintbootimage java -jar /data/hello-world-0.1.0.jar –server.port=8081

这将行不通,您可以阅读有关内容的更多详细信息,以使其正常运行,只需通过-Dserver.port=8081

docker run -it --net host --rm hello-world java -jar -Dserver.port=8081 /data/hello-world-0.1.0.jar

输出

2020-07-13 03:31:59.316  INFO 1 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-07-13 03:31:59.631  INFO 1 --- [ main] : Tomcat started on port(s): 8081 (http) with context path ''
2020-07-13 03:31:59.636  INFO 1 --- [           main] c.d.hello.Application                    : Started Application in 4.031 seconds (JVM running for 4.875)

为什么JVM参数以“ -D”开头?

-Dproperty=value

设置系统属性值。属性变量是一个没有空格的字符串,代表属性的名称。value变量是代表属性值的字符串。如果value是带空格的字符串,则将其括在引号中(例如-Dfoo="foo bar")。

因此,CMD将成为

  
command: ["java", "-Dserver.port=${app_port}", "-jar", "/data/hello-world-0.1.0.jar"] 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在AWS Fargate中链接容器

来自分类Dev

将参数传递给在AWS Fargate上的Docker容器中运行的Python

来自分类Dev

如何通过命令行将参数传递给Kubernetes或OpenShift中的Docker容器?

来自分类Dev

如何在Service Fabric中将命令行参数传递给docker Grafana容器

来自分类Dev

将命令行参数传递给 Visual Studio 容器工具中 .NET Core 控制台应用程序的 Docker 调试运行

来自分类Dev

在 EventBridge 的 Fargate 容器中使用命令

来自分类Dev

从Fargate容器中运行AWS Log Agent

来自分类Dev

AWS Lambda 容器镜像支持与 Fargate

来自分类Dev

AWS EC2 容器程序命令行参数

来自分类Dev

将 ElasticSearch Docker 容器部署到 AWS Fargate

来自分类Dev

通过 EventBridge / Crond 在 Fargate 容器中调用 ftp 命令

来自分类Dev

在AWS Fargate的容器启动时创建文件

来自分类Dev

如何增加AWS Fargate容器中的磁盘空间?

来自分类Dev

验证AWS ECS FARGATE容器上的端到端加密

来自分类Dev

如何在 AWS Fargate 容器中运行不同的 Python 脚本

来自分类Dev

将命令行参数传递给Python

来自分类Dev

将命令行参数传递给python脚本

来自分类Java

将命令行参数传递给可运行的JAR

来自分类Dev

将命令行参数传递给Presto Query

来自分类Dev

将命令行参数传递给gawk脚本

来自分类Dev

如何将命令行参数传递给Deno?

来自分类Dev

将命令行参数传递给Groovy脚本

来自分类Dev

使用Ansible将命令行参数传递给Docker

来自分类Dev

将数组作为命令行参数传递给脚本

来自分类Dev

将命令行参数传递给运行任务

来自分类Dev

如何将命令行参数传递给GHCi

来自分类Python

将命令行参数传递给uwsgi脚本

来自分类Dev

如何将命令行参数传递给gnuplot?

来自分类Dev

将命令行参数传递给Spark-shell

Related 相关文章

  1. 1

    在AWS Fargate中链接容器

  2. 2

    将参数传递给在AWS Fargate上的Docker容器中运行的Python

  3. 3

    如何通过命令行将参数传递给Kubernetes或OpenShift中的Docker容器?

  4. 4

    如何在Service Fabric中将命令行参数传递给docker Grafana容器

  5. 5

    将命令行参数传递给 Visual Studio 容器工具中 .NET Core 控制台应用程序的 Docker 调试运行

  6. 6

    在 EventBridge 的 Fargate 容器中使用命令

  7. 7

    从Fargate容器中运行AWS Log Agent

  8. 8

    AWS Lambda 容器镜像支持与 Fargate

  9. 9

    AWS EC2 容器程序命令行参数

  10. 10

    将 ElasticSearch Docker 容器部署到 AWS Fargate

  11. 11

    通过 EventBridge / Crond 在 Fargate 容器中调用 ftp 命令

  12. 12

    在AWS Fargate的容器启动时创建文件

  13. 13

    如何增加AWS Fargate容器中的磁盘空间?

  14. 14

    验证AWS ECS FARGATE容器上的端到端加密

  15. 15

    如何在 AWS Fargate 容器中运行不同的 Python 脚本

  16. 16

    将命令行参数传递给Python

  17. 17

    将命令行参数传递给python脚本

  18. 18

    将命令行参数传递给可运行的JAR

  19. 19

    将命令行参数传递给Presto Query

  20. 20

    将命令行参数传递给gawk脚本

  21. 21

    如何将命令行参数传递给Deno?

  22. 22

    将命令行参数传递给Groovy脚本

  23. 23

    使用Ansible将命令行参数传递给Docker

  24. 24

    将数组作为命令行参数传递给脚本

  25. 25

    将命令行参数传递给运行任务

  26. 26

    如何将命令行参数传递给GHCi

  27. 27

    将命令行参数传递给uwsgi脚本

  28. 28

    如何将命令行参数传递给gnuplot?

  29. 29

    将命令行参数传递给Spark-shell

热门标签

归档