我已经开始将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/