1

我正在尝试启动 selenium 网格服务器并使用 fargate 将 firefox-node 附加到它。我正在使用 aws 控制台,因为我对编写 cloudformation 没有那么自信。我想链接两个容器集线器和 selenium/firefox。在 Fargate 中,默认网络模式是 awsvpc,我们不能使用旧版“链接”参数。其中一个教程视频建议两个容器可以使用通常称为 localhost/127.0.0.1 的本地环回接口进行通信。所以我的任务定义如下。但它仍然不起作用。任何帮助表示赞赏。

{
"executionRoleArn": "arn:aws:iam::xxxxxxxxx:role/ecsTaskExecutionRole",
"containerDefinitions": [
{
  "dnsSearchDomains": null,
  "logConfiguration": {
    "logDriver": "awslogs",
    "options": {
      "awslogs-group": "/ecs/first-run-task-definition",
      "awslogs-region": "us-xxxx-x",
      "awslogs-stream-prefix": "ecs"
    }
  },
  "entryPoint": [],
  "portMappings": [
    {
      "hostPort": 4444,
      "protocol": "tcp",
      "containerPort": 4444
    }
  ],
  "command": [],
  "linuxParameters": null,
  "cpu": 0,
  "environment": [
    {
      "name": "SE_OPTS",
      "value": "-debug"
    }
  ],
  "mountPoints": [],
  "volumesFrom": [],
  "image": "selenium/hub:latest",
  "disableNetworking": null,
  "essential": true,
  "links": [],
  "hostname": null,
  "extraHosts": null,
  "user": null,
  "readonlyRootFilesystem": null,
  "dockerLabels": null,
  "privileged": null,
  "name": "hub"
},
{
  "dnsSearchDomains": null,
  "logConfiguration": {
    "logDriver": "awslogs",
    "options": {
      "awslogs-group": "/ecs/first-run-task-definition",
      "awslogs-region": "us-xxxx-1",
      "awslogs-stream-prefix": "ecs"
    }
  },
  "entryPoint": null,
  "portMappings": [],
  "command": null,
  "linuxParameters": null,
  "cpu": 0,
  "environment": [
    {
      "name": "HUB_PORT_4444_TCP_ADDR",
      "value": "127.0.0.1"
    },
    {
      "name": "HUB_PORT_4444_TCP_PORT",
      "value": "4444"
    }
  ],
  "volumesFrom": [],
  "image": "selenium/node-firefox:latest",
  "disableNetworking": null,
  "essential": true,
  "links": [],
  "hostname": null,
  "extraHosts": null,
  "user": null,
  "readonlyRootFilesystem": null,
  "dockerLabels": null,
  "privileged": null,
  "name": "firefox"
}
],
"placementConstraints": [],
 "memory": "1024",
 "taskRoleArn": "arn:aws:iam::xxxxxxx:role/ecsTaskExecutionRole",
"compatibilities": [
   "EC2",
   "FARGATE"
  ],
  "taskDefinitionArn": "arn:aws:ecs:us-xxxx-1:xxxxx:task-definition/first-
  run-task-definition:10",
   "family": "first-run-task-definition",
  "requiresAttributes": [
 {
  "targetId": null,
  "targetType": null,
  "value": null,
  "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
},
{
  "targetId": null,
  "targetType": null,
  "value": null,
  "name": "ecs.capability.task-eni"
},
{
  "targetId": null,
  "targetType": null,
  "value": null,
  "name": "com.amazonaws.ecs.capability.task-iam-role"
},
{
  "targetId": null,
  "targetType": null,
  "value": null,
  "name": "ecs.capability.execution-role-awslogs"
},
{
  "targetId": null,
  "targetType": null,
  "value": null,
  "name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
},
{
  "targetId": null,
  "targetType": null,
  "value": null,
  "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
}
  ],
"requiresCompatibilities": [
  "FARGATE"
],
 "networkMode": "awsvpc",
 "cpu": "512",
 "revision": 10,
 "status": "ACTIVE",
 "volumes": []
}
4

1 回答 1

1

你试过HUB_PORT_4444_TCP_ADDR = localhost吗?我正在使用一组不同的环境变量,但将集线器 IP 设置为 localhost 对我有用。下面是我的 Firefox 容器任务定义的环境部分:

{
    "environment": [
        {
            "name": "HUB_HOST",
            "value": "localhost"
        },
        {
            "name": "HUB_PORT",
            "value": "4444"
        },
        {
            "name": "NODE_MAX_INSTANCES",
            "value": "10"
        },
        {
            "name": "NODE_MAX_SESSION",
            "value": "10"
        }
    ]
}
于 2018-04-23T08:05:43.397 回答