A collection of docker images useful for development environments and CI/CD pipelines.
A multi-purpose Docker on Docker or Docker in Docker image to be used as a Devcontainer.
A Docker in Docker image to provide fully ephemeral Jenkins agents.
A collection of docker images useful for development environments and CI/CD pipelines.
License: MIT License
A collection of docker images useful for development environments and CI/CD pipelines.
A multi-purpose Docker on Docker or Docker in Docker image to be used as a Devcontainer.
A Docker in Docker image to provide fully ephemeral Jenkins agents.
> /tmp/docker-daemon.log 2>&1
FROM ghcr.io/felipecrs/jenkins-agent-dind:sha-f32dea2
RUN mkdir -p /home/jenkins/automation /home/jenkins/work &&
chown jenkins:jenkins /home/jenkins/automation /home/jenkins/work
USER root
RUN apt-get update && apt-get install -y
unzip
wget
passwd
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y openjdk-17-jdk && rm -rf /var/lib/apt/lists/*
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ENV PATH="${JAVA_HOME}/bin:${PATH}"
RUN wget https://downloads.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz -P /tmp &&
tar -zxf /tmp/apache-maven-3.9.6-bin.tar.gz -C /usr/local &&
mv /usr/local/apache-maven-3.9.6 /usr/local/maven-3.9.6
ENV MAVEN_HOME=/usr/local/maven-3.9.6
MAVEN_CONFIG=$USER_HOME_DIR/.m2
PATH="/usr/local/maven-3.9.6/bin:$PATH"
RUN wget https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip -P /tmp &&
unzip /tmp/awscli-exe-linux-x86_64.zip -d /tmp &&
/tmp/aws/install &&
rm -rf /tmp/aws /tmp/awscli-exe-linux-x86_64.zip
RUN apt-get update && apt-get install -y
adduser
&& rm -rf /var/lib/apt/lists/*
RUN adduser --disabled-password --gecos "" studio
USER jenkins
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 CMD docker info > /dev/null 2>&1 || exit 1
then use this image on jenkins file:
containers:
but get one error when run on pipeline jenkins:
[INFO] k8s: Digest: sha256:f4ab40c615ec2bd6a09992f6ceebeca796752e58ea778ccc6439087a728ba3b3 [INFO] k8s: Status: Downloaded newer image for eclipse-temurin:11 [INFO] k8s: Pulled eclipse-temurin:11 in 3 seconds [INFO] k8s: [citest/rest/demorest_ms:latest]: Created docker-build.tar in 175 milliseconds [ERROR] k8s: Failed to execute the build [Error while trying to build the image: Unable to build image [citest/rest/demorest_ms] : "The command '/bin/sh -c adduser studio' returned a non-zero code: 127" ]
[ERROR] Failed to execute goal org.eclipse.jkube:kubernetes-maven-plugin:1.12.0:build (start) on project VMSpringDemoMS: Failed to execute the build: Error while trying to build the image: Unable to build image [citest/vmspringdemoms] : "The command '/bin/sh -c adduser studio' returned a non-zero code: 127" -> [Help 1]
+ docker inspect -f . node:18-alpine
error during connect: Get "http://host.docker.internal:3375/v1.24/containers/node:18-alpine/json": EOF
[Pipeline] isUnix
[Pipeline] withEnv
[Pipeline] {
[Pipeline] sh
+ docker pull node:18-alpine
error during connect: Post "http://host.docker.internal:3375/v1.24/images/create?fromImage=node&tag=18-alpine": EOF
Background:
Possible root cause:
Question:
Oh My Bash should be relatively small compared to the benefits it will bring when it comes to troubleshooting the build container with SSH.
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
This repository currently has no open or pending branches.
Dockerfile
ubuntu noble-20240801
jenkins-agent-dind/test-fixtures/Dockerfile
.github/workflows/ci.yml
actions/checkout v4
docker/setup-buildx-action v3
docker/bake-action v5
actions/checkout v4
docker/setup-qemu-action v3
docker/setup-buildx-action v3
docker/bake-action v5
actions/checkout v4
docker/setup-buildx-action v3
docker/bake-action v5
devcontainers/ci v0.3
actions/checkout v4
docker/setup-qemu-action v3
docker/setup-buildx-action v3
docker/metadata-action v5
docker/metadata-action v5
docker/login-action v3
docker/bake-action v5
jenkins-agent-dind/test-fixtures/helmfile.yaml
devcontainer/scripts/prepare_image.sh
docker 27.2.0
docker/compose-switch 1.0.5
kadwanev/retry 1.0.2
felipecrs/pkgx 1.2.0-felipecrs.2
s6-overlay 3.1.6.2
felipecrs/docker-on-docker-shim 0.6.1
devcontainer/scripts/prepare_user.sh
felipecrs/fixdockergid 0.7.1
volta 2.0.1
jenkins-agent-dind/test.sh
jenkinsci/helm-charts 5.5.13
Currently the only semantic versioning these images have are the :1
and :2
tags.
I need to pin its version too.
Refs #146
Building the docker image can be a lot quicker with proper cache configuration in GitHub Actions.
skopeo is very useful for copying docker images without having to download them.
Hey @felipecrs I tried to add gcloud cli utility but didn't make it. will you help me to add that one?
Which can be done by using https://github.com/felipecrs/fixdockergid. When /var/run/docker.sock
is present, we don't need to start the dind
service.
This is useful when using this image as a Jenkinsfile docker agent and you don't want to run it as --privileged
or the overhead of running yet another docker daemon.
Hi,
I'm using devcontainer
in a Jenkins pipeline:
docker.build('devcontainer-agent', ".devcontainer")
.inside('--volume=/var/run/docker.sock:/var/run/docker.sock --network=host --group-add=docker -e TZ=Europe/Paris') {
sh """
mvn -s settings.xml clean deploy
docker build -t local/my-webapp:latest --build-arg SERVER_PORT=8080 -f ./my-webapp/Dockerfile ./data-crud-service-webapp
"""
}
My .devcontainer/Dockerfile
looks like this:
FROM ghcr.io/felipecrs/devcontainer
RUN pkgx install openjdk.org@17 maven.apache.org@3 \
&& java --version \
&& mvn --version
I'd like to add a volume mount to the Docker command, adapted from the Jenkins documentation, so that I avoid redownloading dependencies between runs, something like -v $HOME/.m2:/root/.m2
.
Where in the contained should I mount the agent's .m2 directory? I've made several attempts but could not get it to work...
This image packs a lot of features, but they should not be always needed. It would be nice to have a minimal variant of this image.
With Sysbox, there is no need for the dind hack.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.