Diff layer creation fails due to missing file
jsierles opened this issue · 6 comments
Describe the bug
While processing one RUN command, makisu quits with this error:
error failed to execute build plan: execute stage: build stage 0: build node: do commit: commit: failed to generate diff layer: write diffs: commit layer by scan: commit layer: apply f to /tmp/apt-key-gpghome.5eHGmQmkUt/empty.gpg: content commit tmp/apt-key-gpghome.5eHGmQmkUt/empty.gpg: open src file /tmp/apt-key-gpghome.5eHGmQmkUt/empty.gpg: open /tmp/apt-key-gpghome.5eHGmQmkUt/empty.gpg: no such file or directory
To Reproduce
Build with this Dockerfile:
FROM bitnami/ruby:2.6.5-debian-9-r55
RUN apt-get update -qq && \
apt-get install -y \
# build dependencies
gnupg2 libpq-dev sudo \
# xvfb is a virtual frame buffer used by JS tests
xvfb \
# Chrome browser, for testing, requries these libraries
libasound2 libxss1 libnss3 fonts-liberation libappindicator3-1 xdg-utils \
# wkhtmltopdf is used to format PDF invoices
wkhtmltopdf postgresql-client && \
rm -rf /var/lib/apt/lists/* #!COMMIT
# Install Chrome and Chromedriver for system tests
RUN curl --silent --show-error --location --fail --retry 3 --output /tmp/google-chrome-stable_current_amd64.deb https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
&& (dpkg -i /tmp/google-chrome-stable_current_amd64.deb || apt-get -fy install) \
&& sed -i 's|HERE/chrome"|HERE/chrome" --disable-setuid-sandbox --no-sandbox|g' \
"/opt/google/chrome/google-chrome" #!COMMIT
Expected behavior
I expected this build to work as it does with a standard docker build.
Additional context
Add any other context about the problem here--environment configurations, logs, etc.
which version are you using?
0.1.12
This issue must be related to symlinks, as it's fixed in 0.1.13!
ha that's good to know
Hello, I encountered a similar issue. I bumped into this bug and tried to reproduce yours (successfully).
But, when I try to build your example with v0.1.13, I still have the same issue.
What command do you use to build?
I do it through a docker container, as follow:
docker run -v "$PWD":/job remibooo03/makisu:v0.1.13 sh -c "/makisu/bin/makisu/makisu build --commit=explicit --modifyfs=true -t test_v0.1.13 /job"
And my dockerfile is:
FROM ubuntu:latest
RUN apt-get update
RUN apt-get install -y wget git software-properties-common
RUN add-apt-repository ppa:longsleep/golang-backports
RUN apt-get update
RUN apt-get install -y golang-go
ENV GOPATH /go
ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH
RUN mkdir -p "$GOPATH/src" "$GOPATH/bin" && chmod -R 777 "$GOPATH"
#RUN go get github.com/uber/makisu/tree/v0.1.13/bin/makisu
RUN git clone --branch v0.1.13 https://github.com/uber/makisu.git
WORKDIR /makisu
RUN make
WORKDIR /
RUN mkdir -p /makisu-internal/certs/
RUN cp /etc/ssl/certs/ca-certificates.crt /makisu-internal/certs/cacerts.pem