{"id":19336778,"url":"https://github.com/samrocketman/docker-jenkins-jervis","last_synced_at":"2025-02-24T08:13:26.810Z","repository":{"id":24086056,"uuid":"27473058","full_name":"samrocketman/docker-jenkins-jervis","owner":"samrocketman","description":"Docker images for jervis.","archived":false,"fork":false,"pushed_at":"2023-07-06T11:02:35.000Z","size":88,"stargazers_count":7,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-06T10:13:24.635Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samrocketman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-12-03T06:31:12.000Z","updated_at":"2023-06-25T14:44:52.000Z","dependencies_parsed_at":"2024-11-10T03:12:37.649Z","dependency_job_id":"ed57b7cb-4e30-4853-80f8-0ddb2ca938bd","html_url":"https://github.com/samrocketman/docker-jenkins-jervis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrocketman%2Fdocker-jenkins-jervis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrocketman%2Fdocker-jenkins-jervis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrocketman%2Fdocker-jenkins-jervis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samrocketman%2Fdocker-jenkins-jervis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samrocketman","download_url":"https://codeload.github.com/samrocketman/docker-jenkins-jervis/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240441953,"owners_count":19801793,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-10T03:12:25.521Z","updated_at":"2025-02-24T08:13:26.756Z","avatar_url":"https://github.com/samrocketman.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Jervis docker clients\n\nThese are the docker build files to create [Jervis][jervis] docker clients as\nJenkins build slaves.\n\n# Build all operating system variants\n\nA helpful build script is provided.\n\n    ./build.sh\n\nThis will build the following containers:\n\n- `jervis-alpine:latest`\n- `jervis-centos7:latest`\n- `jervis-centos7-android:latest`\n- `jervis-centos7-dnd:latest`\n- `jervis-ubuntu1604:latest`\n- `jervis-ubuntu1804:latest`\n\nAlternatively, to build a single variant, simply pass one or more directories as\narguments to `build.sh`.  For example, to build `jervis-centos7-android` you\nmust first build the `jervis-centos7` base image.\n\n    ./build.sh centos7 centos7-android\n\n# Running containers\n\n`docker run` is the typical method for running containers.  To launch the\ncentos7 container:\n\n    docker run -it --rm jervis-centos7 /bin/bash\n\nOther images can be launched with similar commands unless otherwise stated.\n\n### Working with android emulators\n\nThe `jervis-centos7-android` image provides Android SDK tools, Android\nplatform-tools, and Android emulator.  However, it does not install machine\nimages or set up hardware.  That's left up to the developer running a build to\ndo in their build scripts.  Here's an example of starting an emulator in the\nbackground for running UI tests.  For operating on most common Android phones,\n`android-22` for ARMv7 is recommended.\n\n    docker run -it --rm jervis-centos7-android /bin/bash\n\nFrom within the docker container:\n\n    yes | sdkmanager platform-tools emulator 'platforms;android-22' 'system-images;android-22;default;armeabi-v7a'\n    yes '' | avdmanager create avd --package 'system-images;android-22;default;armeabi-v7a' --abi armeabi-v7a --name android-phone\n    adb start-server\n    nohup emulator -avd android-phone -no-skin -no-window \u0026\n\nNow you're ready to run your tests.\n\n    ./gradlew clean test connectedAndroidTest\n\n### Working with docker in docker\n\nThe `jervis-centos7-dnd` image is provided for docker in docker operations.\nRunning the container with `--privileged` is required, however Docker CE has\ndone a lot of work to make sure `--privileged` is as safe as possible to run\ndocker in docker.  The reason why `--privileged` is required is that docker\nneeds write access to `/sys/fs/cgroup` and other kernel APIs only available in\n`--privileged` mode.\n\nSee security writeups:\n\n- [Docker security][docker-security].\n- [Docker run capabilies when `--privileged` option is\n  used][docker-capabilities].\n\nStarting a docker container which runs docker in docker.\n\n    docker volume create docker-data\n    docker run -it --rm --privileged -v docker-data:/var/lib/docker jervis-centos7-dnd /bin/bash\n\nAll following commands occur within the docker container.\n\n```bash\n# start docker daemon with debug logging\nsudo -i nohup dockerd -D \u0026\n# writes docker daemon logs to /root/nohup.out\ndocker pull centos:7\n# run a docker container inside of the docker container\ndocker run -it --rm centos:7 /bin/bash\n```\n\nThings to note:\n\n- docker daemon requires write access to a volume mounted on `/var/lib/docker`.\n  We did that by using docker volumes with `-v docker-data:/var/lib/docker`.\n- **Do not** use the `docker-data` volume with more than one docker in docker\n  container.  If you need to launch a second docker in docker container, then\n  create and mount a volume with a different name.  Accessing `/var/lib/docker`\n  with multiple docker daemons will cause data corruption.\n\n[docker-capabilities]: https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities\n[docker-security]: https://docs.docker.com/engine/security/security/\n[jervis]: https://github.com/samrocketman/jervis\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamrocketman%2Fdocker-jenkins-jervis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamrocketman%2Fdocker-jenkins-jervis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamrocketman%2Fdocker-jenkins-jervis/lists"}