mirror of
https://github.com/GoogleContainerTools/kaniko
synced 2026-10-22 06:28:36 +02:00
Merge pull request #171 from priyawadhwa/busybox
Create debug image with busybox shell
This commit is contained in:
@@ -201,9 +201,13 @@ spec:
|
||||
```
|
||||
### Debug Image
|
||||
|
||||
We provide `gcr.io/kaniko-project/executor:debug` as a a version of the executor image based off a Debian image.
|
||||
This provides a shell and can be useful for debugging.
|
||||
The kaniko executor image is based off of scratch and doesn't contain a shell.
|
||||
We provide `gcr.io/kaniko-project/executor:debug`, a debug image which consists of the kaniko executor image along with a busybox shell to enter.
|
||||
|
||||
You can launch the debug image with a shell entrypoint:
|
||||
```shell
|
||||
docker run -it --entrypoint=/busybox/sh gcr.io/kaniko-project/executor:debug
|
||||
```
|
||||
## Security
|
||||
|
||||
kaniko by itself **does not** make it safe to run untrusted builds inside your cluster, or anywhere else.
|
||||
|
||||
+27
-4
@@ -12,14 +12,37 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# Builds the executor from debian
|
||||
# Builds the static Go image to execute in a Kubernetes job
|
||||
|
||||
FROM gcr.io/google-appengine/debian9:latest
|
||||
COPY out/executor /kaniko/executor
|
||||
# Stage 0: Build the executor binary and get credential helpers
|
||||
FROM golang:1.10
|
||||
WORKDIR /go/src/github.com/GoogleContainerTools/kaniko
|
||||
COPY . .
|
||||
RUN make
|
||||
# Get GCR credential helper
|
||||
ADD https://github.com/GoogleCloudPlatform/docker-credential-gcr/releases/download/v1.4.3-static/docker-credential-gcr_linux_amd64-1.4.3.tar.gz /usr/local/bin/
|
||||
RUN tar -C /usr/local/bin/ -xvzf /usr/local/bin/docker-credential-gcr_linux_amd64-1.4.3.tar.gz
|
||||
# Get Amazon ECR credential helper
|
||||
RUN go get -u github.com/awslabs/amazon-ecr-credential-helper/ecr-login/cli/docker-credential-ecr-login
|
||||
RUN make -C /go/src/github.com/awslabs/amazon-ecr-credential-helper linux-amd64
|
||||
|
||||
# Stage 1: Get the busybox shell
|
||||
FROM gcr.io/cloud-builders/bazel:latest
|
||||
RUN git clone https://github.com/GoogleContainerTools/distroless.git
|
||||
WORKDIR /distroless
|
||||
RUN bazel build busybox:busybox.tar
|
||||
RUN tar -C /distroless/bazel-genfiles/busybox/ -xf /distroless/bazel-genfiles/busybox/busybox.tar
|
||||
|
||||
FROM scratch
|
||||
COPY --from=0 /go/src/github.com/GoogleContainerTools/kaniko/out/executor /kaniko/executor
|
||||
COPY --from=0 /usr/local/bin/docker-credential-gcr /usr/local/bin/docker-credential-gcr
|
||||
COPY --from=0 /go/src/github.com/awslabs/amazon-ecr-credential-helper/bin/linux-amd64/docker-credential-ecr-login /usr/local/bin/docker-credential-ecr-login
|
||||
COPY --from=1 /distroless/bazel-genfiles/busybox/busybox/ /busybox/
|
||||
COPY files/ca-certificates.crt /kaniko/ssl/certs/
|
||||
COPY files/docker-credential-gcr /usr/local/bin/
|
||||
COPY files/config.json /root/.docker/
|
||||
RUN ["docker-credential-gcr", "config", "--token-source=env"]
|
||||
ENV HOME /root
|
||||
ENV USER /root
|
||||
ENV PATH /usr/local/bin
|
||||
ENV SSL_CERT_DIR=/kaniko/ssl/certs
|
||||
ENTRYPOINT ["/kaniko/executor"]
|
||||
|
||||
@@ -3,4 +3,9 @@ steps:
|
||||
- name: "gcr.io/cloud-builders/docker"
|
||||
args: ["build", "-f", "deploy/Dockerfile",
|
||||
"-t", "gcr.io/kaniko-project/executor:${COMMIT_SHA}", "."]
|
||||
images: ["gcr.io/kaniko-project/executor:${COMMIT_SHA}"]
|
||||
# Then, we want to build kaniko:debug
|
||||
- name: "gcr.io/cloud-builders/docker"
|
||||
args: ["build", "-f", "deploy/Dockerfile_debug",
|
||||
"-t", "gcr.io/kaniko-project/executor:debug-${COMMIT_SHA}", "."]
|
||||
images: ["gcr.io/kaniko-project/executor:${COMMIT_SHA}",
|
||||
"gcr.io/kaniko-project/executor:debug-${COMMIT_SHA}"]
|
||||
|
||||
Reference in New Issue
Block a user