1

我正在使用 Laravel。我想将它部署到 ECS (B/G) 以查看它是如何工作的。在开发环境中,Laravel 正在运行。我能够使用 docker 在 EC2 上启动我的 Laravel 项目。我想第一次使用 Fargate 并部署到 ECS!

此外,CodeBuild 已成功完成。

应用规范.yml

version: 0.0 Resources:
  - TargetService:
      Type: AWS::ECS::Service
      Properties:
        TaskDefinition: "<TASK_DEFINITION>"
        LoadBalancerInfo:
          ContainerName: "nginx"
          ContainerPort: "80"

任务定义.json

{
  "taskRoleArn": "arn:aws:iam::**********:role/ecsTaskExecutionRole",
  "executionRoleArn": "arn:aws:iam::**********:role/ecsTaskExecutionRole",
  "containerDefinitions": [
    {
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/****-system",
          "awslogs-region": "******",
          "awslogs-stream-prefix": "ecs"
        }
      },
      "entryPoint": [
        "sh",
        "-c"
      ],
      "command": [
        "php artisan config:cache && php artisan migrate && chmod -R 777 storage/ &&  chmod -R 777 bootstrap/cache/"
      ],
      "cpu": 0,
      "environment": [
        {
          "name": "APP_ENV",
          "value": "staging"
        }
      ],
      "workingDirectory": "/var/www/html",
      "image": "<IMAGE1_NAME>",
      "name": "php"
    },
    {
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/****-system",
          "awslogs-region": "****",
          "awslogs-stream-prefix": "ecs"
        }
      },
      "portMappings": [
        {
          "hostPort": 80,
          "protocol": "tcp",
          "containerPort": 80
        }
      ],
      "environment": [
        {
          "name": "APP_ENV",
          "value": "staging"
        }
      ],
      "workingDirectory": "/var/www/html",
      "image": "**********.dkr.ecr.**********.amazonaws.com/**********-nginx:latest",
      "name": "nginx"
    }
  ],
  "placementConstraints": [],
  "memory": "2048",
  "family": "*****-system",
  "requiresCompatibilities": [
    "FARGATE"
  ],
  "networkMode": "awsvpc",
  "cpu": "1024",
  "volumes": []
}

CodeDeploy 在安装时停止,并且没有错误。正如您在捕获中看到的,我们可以确认“<TASK_DEFINITION>”已被替换。我想知道我是否缺少任何信息。

我不确定如何设置诸如“.env”之类的环境变量,所以我认为这可能是原因。

代码部署失败

修订

任务定义

ECR

ECR nginx

ECR src(laravel)

4

1 回答 1

0

如果您想更改 .env 文件以设置 env 变量,您可以使用 ssh 连接到您的网络服务器并nano .env在根文件夹中运行命令来写入文件。

您还可以使用 ftp 连接修改文件。

于 2022-02-22T13:39:03.467 回答