uber-archive/makisu

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