0

开始使用 AWS CodeBuild。

目标是让 docker 图像作为最终结果,其中运行 nodejs、hapi 和示例应用程序。

目前我有一个问题:“无法准备上下文:无法评估 Dockerfile 路径中的符号链接:lstat /tmp/src049302811/src/Dockerfile:没有这样的文件或目录”出现在 BUILD 阶段。

项目详情:

  1. 用作源的 S3 存储桶
  2. 存储在相应 S3 存储桶中的 ZIP 文件包含 buildspec.yml、package.json、示例 *.js 文件和 DockerFile。
  3. aws/codebuild/docker:1.12.1 用作构建环境。

当我使用安装在笔记本电脑上的 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"]
4

2 回答 2

2

好的,所以解决方案很简单。问题与 Dockerfile 名称有关。它不接受 DockerFile(大写 F,奇怪的是它在本地工作),但 Dockerfile(小写 f)运行良好。

于 2017-03-22T17:17:09.487 回答
0

您可以验证 Dockerfile 是否存在于目录的根目录中?这样做的一种方法是在构建规范ls -altr中作为pre-build阶段的一部分运行(甚至在 ecr 登录之前)。

于 2017-03-21T20:25:10.657 回答