A Jenkins Docker image with docker-client, docker-compose, go and nodejs embedded.
NOTE: You can edit the docker-compose.yml
file to install docker-compose, go and nodejs version that fit to your needs.
The only requirement is:
# setup your project name
$ export PROJECT_NAME="dummy"
# setup the desired path to jenkins_home
$ export JENKINS_HOME=/path/to/desired/jenkins_home
$ sudo mkdir -p $JENKINS_HOME/{workspace,builds,jobs}
$ sudo chown -R 1000 $JENKINS_HOME
$ sudo chmod -R a+rwx $JENKINS_HOME
$ git clone https://github.com/TommyStarK/jenkins-with-docker-nodejs-go.git
$ mv jenkins-with-docker-nodejs-go $PROJECT_NAME
$ cd $PROJECT_NAME
$ docker-compose up --build --detach
- Connect to the running container as root:
$ docker exec -ti -u root "${PROJECT_NAME}_jenkins" bash
- Now we are inside the container, run the following commands:
# change ownership of docker socket to jenkins user
$ chown jenkins /var/run/docker.sock
- Test docker:
$ docker exec -ti "${PROJECT_NAME}_jenkins" bash
$ docker ps -a
$ docker exec -ti -u root "${PROJECT_NAME}_jenkins" bash
$ cat /root/.ssh/*
$ docker logs -f `docker ps -aqf "name=${PROJECT_NAME}_jenkins"`
$ docker stop "${PROJECT_NAME}_jenkins"
$ docker rm "${PROJECT_NAME}_jenkins"
$ docker rmi "${PROJECT_NAME}_jenkins"
$ docker volume rm "${PROJECT_NAME}_jenkins_workspace"
$ docker network rm "${PROJECT_NAME}_jenkins_network"
$ sudo rm -rf $JENKINS_HOME