开始使用AWS CodeBuild。
目标是将docker图像作为最终结果,并在其中运行nodejs,hapi和sample app。
目前我有一个问题: "无法准备上下文:无法评估Dockerfile路径中的符号链接:lstat / tmp / src049302811 / src / Dockerfile:没有这样的文件或目录" 出现在BUILD阶段。
项目详情:
当我使用笔记本电脑上安装的Docker构建图像时,没有任何问题,因此我无法理解我需要指定哪个目录来摆脱此错误消息。
下面附有Buildspec和DockerFile。
感谢您提出任何意见。
buildspec.yml
version: 0.1
phases:
pre_build:
commands:
- echo Logging in to Amazon ECR...
- $(aws ecr get-login --region eu-west-1)
build:
commands:
- echo Build started on `date`
- echo Building the Docker image...
- docker build -t <CONTAINER_NAME> .
- docker tag <CONTAINER_NAME>:latest <ID>.dkr.ecr.eu-west-1.amazonaws.com/<CONTAINER_NAME>:latest
post_build:
commands:
- echo Build completed on `date`
- echo Pushing the Docker image...
- docker push <id>.eu-west-1.amazonaws.com/<image>:latest
DockerFile
FROM alpine:latest
RUN apk update && apk upgrade
RUN apk add nodejs
RUN rm -rf /var/cache/apk/*
COPY . /src
RUN cd /src; npm install hapi
EXPOSE 80
CMD ["node", "/src/server.js"]
答案 0 :(得分:2)
好的,所以解决方案很简单。 问题与Dockerfile名称有关。 它不接受DockerFile(使用大写F,奇怪的是它在本地工作)但是Dockerfile(小写的f)工作得很好。
答案 1 :(得分:0)
您是否可以验证目录根目录中是否存在Dockerfile?一种方法是在构建规范中运行override def open(split: GenericInputSplit): Unit = {
super.open(split)
i = 0
}
作为ls -altr
阶段的一部分(甚至在ecr登录之前)。