我已经开始将Circleci用于CI(我是新手),我想构建一个docker镜像并将其推送到circleci作业中的dockerhub。
问题是dockerfile的ADD语句,错误提示

ADD failed: stat /var/lib/docker/tmp/docker-builder814373370/app/build: no such file or directory
docker build在本地工作正常。问题似乎是circleci创建的“远程环境”,以在作业内执行docker cmd(当作业在容器内执行时)。我尝试了多种方法将文件夹共享到远程环境,但是没有任何效果。我还尝试在“机器”中执行我的工作以摆脱“远程环境”,但这给了我更多的错误。
我想我可以通过将项目在线存储在另一个作业中,然后在dockerfile中通过https添加文件夹来实现。但是我很确定有一个更快的方法,我只是看不到。
这是我的dockerfile:
FROM ubuntu:20.04

RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt-get update -yq && apt-get -yq install nodejs npm && npm install serve -g

ADD app/build/ /app

EXPOSE 5000

CMD serve -s /app -l 5000
和我的circleci工作:
working_directory: ~/project/
  docker:
    - image: circleci/buildpack-deps:stretch
  steps:
    - checkout
    - setup_remote_docker
    - run:
        name: Build Docker image
        command: sudo docker build . -t $IMAGE_NAME:latest

最佳答案

我通过将 Artifact 存储在另一个作业中,然后通过使用curl和wget在dockerfile的RUN语句中通过https添加文件夹来实现此目的

关于docker - 在Circleci作业中构建时,Dockerfile ADD语句无法访问我的src文件夹,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62487591/

10-16 15:48