Чтобы развернуть мою платформу Laravel в контейнерах Docker на AWS, я создал CodePipeline в AWS, выполнив три основных шага:
1) Получить исходный код из Github (выходной артефакт = MyApp)
2) Используйте AWS CodeBuild (конфигурация ниже)
3) Используйте AWS CodeDeploy для развертывания моих выходных данных из CodeBuild в контейнерах Docker ECS. (входные артефакты = MyApp-built)
Моя проблема - шаг 2 (сборка кода). Этот шаг запускает установку Composer как команду и выгружает вывод на S3. Выходной Zip на S3 имеет один файл: appspec.yml вместо моей полной структуры с каталогом поставщика. Итак, шаг 3 развертывает один файл в моих контейнерах.
Конфигурация моей сборки кода:
Артефакты ввода = MyApp
Артефакты вывода = MyApp-built
Имя артефактов = MyApp-built (??)
buildspec.yml:
version: 0.1
phases:
build:
commands:
- composer install
artifacts:
files:
- appspec.yml
Статус CodePipeline выполнен успешно. Надеюсь, вы поможете мне продвинуть вывод после моей команды установки композитора для запуска контейнеров докеров. Ниже вы можете найти несколько строк из файла журнала CodeBuild.
[Container] 2017/03/23 20:41:18 Waiting for agent
[Container] 2017/03/23 20:41:18 Phase is DOWNLOAD_SOURCE
[Container] 2017/03/23 20:41:18 Source is located at /tmp/src931942067/src
[Container] 2017/03/23 20:41:18 YAML location is /codebuild/readonly/buildspec.yml
[Container] 2017/03/23 20:41:18 Registering with agent
[Container] 2017/03/23 20:41:18 Phases found in YAML: 1
[Container] 2017/03/23 20:41:18 BUILD: 1 commands
[Container] 2017/03/23 20:41:18 Phase complete: DOWNLOAD_SOURCE Success: true
[Container] 2017/03/23 20:41:18 Phase context status code: Message:
[Container] 2017/03/23 20:41:18 Processing plaintext environment variables
[Container] 2017/03/23 20:41:18 Processing build-level environment variables
[Container] 2017/03/23 20:41:18
{
"base-directory:": "/",
"discard-paths": "yes"
}
[Container] 2017/03/23 20:41:18 base-directory: = /
[Container] 2017/03/23 20:41:18 discard-paths = yes
[Container] 2017/03/23 20:41:18 Processing builtin environment variables
[Container] 2017/03/23 20:41:18 Moving to directory /tmp/src931942067/src
[Container] 2017/03/23 20:41:18 Entering phase BUILD
[Container] 2017/03/23 20:41:18 Running command composer install
[Container] 2017/03/23 20:41:19 Loading composer repositories with package information
....
....
[Container] 2017/03/23 20:42:25 > php artisan optimize
[Container] 2017/03/23 20:42:26 Generating optimized class loader
[Container] 2017/03/23 20:42:26 The compiled services file has been removed.
[Container] 2017/03/23 20:42:26 Phase complete: BUILD Success: true
[Container] 2017/03/23 20:42:26 Phase context status code: Message:
[Container] 2017/03/23 20:42:26 Preparing to copy artifacts
[Container] 2017/03/23 20:42:26 Expanding base directory path
[Container] 2017/03/23 20:42:26 Assembling file list
[Container] 2017/03/23 20:42:26 Expanding .
[Container] 2017/03/23 20:42:26 Found .
[Container] 2017/03/23 20:42:26 Expanding artifact file paths for base directory .
[Container] 2017/03/23 20:42:26 Assembling file list
[Container] 2017/03/23 20:42:26 Expanding appspec.yml
[Container] 2017/03/23 20:42:26 Found appspec.yml
[Container] 2017/03/23 20:42:26 Creating zip artifact
[Container] 2017/03/23 20:42:26 Phase complete: UPLOAD_ARTIFACTS Success: true
[Container] 2017/03/23 20:42:26 Phase context status code: Message:
чтобы загрузить весь файл в проект, используйте этот формат:
artifacts:
files:
- '**/*'