我正在尝试在AWS Codebuild上构建一个简单的hello世界,但是我无法使buildspec.yml
正常工作...我只想在文件夹中放入带有一些CSS的简单html。而已。
这是我尝试构建的repo。
如果您向里看,.yml
具有以下内容:
version: 0.2
run-as: ec2-user
phases:
install:
run-as: ec2-user
runtime-versions:
nodejs: 10
artifacts:
files:
- /index.html
name: artifact-name
- source: /
destination: /var/www/html
# base-directory: /var/www/html/
This和this是.yml
的文档,但我不知道该写什么,它不是java,不是python,而只是一个html
。 / p>
编辑:我忘了输入错误:
YAML_FILE_ERROR: mapping values are not allowed in this context at line 14
EDIT2:
这就是我的buildspec.yml
:
这就是我的环境(我正在使用自己的ec2实例的代码部署和管道,这有问题吗?)
最终编辑:
问题在于图像!将其更改为Ubuntu版本1.0
答案 0 :(得分:3)
您需要构建一个CodePipeline,该代码应具有:
为代码构建创建buildspec.yml并将其放在根目录中。同样,为codedeploy创建appspec.yml并将其放在根目录中。
样本buildspec.yml
version: 0.2
phases:
pre_build:
commands:
- echo "creating <path-to-folder> folder"
- mkdir -p ./<path-to-folder>/
build:
commands:
- echo "Copying the file"
- cp index.html ./<path-to-folder>/
artifacts:
files:
- <path-to-folder>/**/*
- appspec.yml
buildspec.yml将创建一个文件夹,并将您的index.html复制到该文件夹中并将其放在S3上。
sample appspec.yml
version: 0.0
os: linux
files:
- source: <path-to-folder>/index.html
destination: /var/www/html/
hooks:
BeforeInstall:
- location: <location-of-script-you-want-to-run>
timeout: 300
runas: root
- location: <location-of-script-you-want-to-run>
timeout: 300
runas: root
ApplicationStop:
- location: <location-of-script-you-want-to-run>
timeout: 300
runas: root
appspec.yml将从S3下载工件,并将文件从文件夹复制到/ var / www / html /,并且您可以提供其他脚本来启动或停止服务。
答案 1 :(得分:1)
请从index.html中删除斜杠。另外,您可以尝试将工件块更新为以下内容吗?
version: 0.2
run-as: ec2-user
phases:
install:
run-as: ec2-user
runtime-versions:
nodejs: 10
artifacts:
files:
- index.html
默认情况下,CodeBuild使用源输入的根文件夹。如果需要,可以这样指定:
artifacts:
files:
- location
- location
name: artifact-name
discard-paths: yes
base-directory: location # Look here
此外,您似乎还混合了来自appspec.yml的语法,这完全是另一种野兽。无需在buildspec.yml中指定destination
。