├── .github ├── dependabot.yaml └── workflows │ ├── buildx.yaml │ ├── mirror.yaml │ └── schedule.yaml ├── .hadolint.yaml ├── .vscode └── settings.json ├── HOOKS.md ├── LABELS.md ├── LICENSE ├── README.md ├── bootstrap.sh ├── caddy-dns-ovh ├── 2.6.4 │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── 2.9.1 │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── README.md └── latest ├── curl-http2 ├── README.md ├── alpine │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── debian │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt └── latest ├── curl-http3 ├── README.md └── latest │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── curl-jq-yq ├── README.md ├── alpine │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── debian │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── latest └── ubuntu │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── curl-jq ├── README.md ├── alpine │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── debian │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── latest └── ubuntu │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── deplacement-covid-19 ├── README.md ├── couvre-feu-v1 │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── couvre-feu-v2 │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── latest ├── q2-2020 │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt └── q4-2020 │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── easy-blake2s ├── README.md └── latest │ ├── .dockerignore │ ├── Dockerfile │ ├── easy-blake2s.py │ ├── entrypoint.sh │ └── platforms.txt ├── linux-headers ├── 5.15.49-linuxkit-pr │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── 5.15.49-linuxkit │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt └── README.md ├── lustre ├── README.md └── v4 │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── nusmv ├── README.md └── latest │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── oh-my-via ├── README.md └── latest │ ├── .dockerignore │ ├── Dockerfile │ ├── platforms.txt │ └── zshrc ├── python-scrapy ├── README.md └── latest │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── python-vipaccess ├── LICENSE ├── README.md └── latest │ ├── .dockerignore │ ├── Dockerfile │ ├── platforms.txt │ └── vipaccess-wrapper.sh ├── r-languageserver ├── README.md ├── alpine │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── debian │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt └── fedora │ ├── .dockerignore │ ├── Dockerfile │ └── platforms.txt ├── rancher-cli ├── README.md ├── latest │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ ├── hooks │ │ └── pre_build │ └── platforms.txt ├── v0.6.10 │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── v0.6.11 │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── v0.6.12 │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── v0.6.13 │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── v0.6.14 │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── v2.0.6 │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── v2.2.0 │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── v2.3.2 │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt └── v2.4.9 │ ├── .dockerignore │ ├── Dockerfile │ ├── entrypoint.sh │ └── platforms.txt ├── toolbox ├── README.md └── latest │ ├── .dockerignore │ ├── Dockerfile │ ├── platforms.txt │ └── zshrc └── zunit ├── README.md └── latest ├── .dockerignore ├── Dockerfile ├── entrypoint.sh └── platforms.txt /.github/dependabot.yaml: -------------------------------------------------------------------------------- 1 | version: 2 2 | 3 | updates: 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "daily" 8 | -------------------------------------------------------------------------------- /.github/workflows/buildx.yaml: -------------------------------------------------------------------------------- 1 | name: buildx 2 | 3 | on: 4 | workflow_call: # See https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#workflow_call 5 | inputs: 6 | image_name: 7 | description: Name of the image to build 8 | required: true 9 | type: string 10 | image_tag: 11 | description: Tag of the image to build 12 | default: latest 13 | required: true 14 | type: string 15 | workflow_dispatch: # See https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#workflow_dispatch 16 | inputs: 17 | image_name: 18 | description: Name of the image to build 19 | required: true 20 | image_tag: 21 | description: Tag of the image to build 22 | default: latest 23 | required: true 24 | 25 | jobs: 26 | buildx: 27 | name: buildx 28 | runs-on: ubuntu-latest 29 | env: 30 | IMAGE_NAME: badouralix/${{ github.event.inputs.image_name }} # Not exactly the correct wording as per https://stackoverflow.com/questions/31115098/what-is-the-difference-between-an-image-and-a-repository 31 | IMAGE_TAG: ${{ github.event.inputs.image_tag }} 32 | WORKING_DIRECTORY: ${{ github.event.inputs.image_name }}/${{ github.event.inputs.image_tag }} 33 | steps: 34 | - name: Checkout 35 | uses: actions/checkout@v4 # See https://github.com/actions/checkout 36 | 37 | - name: Validate event inputs 38 | uses: actions/github-script@v7 # See https://github.com/actions/github-script 39 | with: 40 | script: | 41 | for (const [key, value] of Object.entries(context.payload.inputs)) { 42 | core.notice(value, {title: key}) 43 | } 44 | 45 | if (context.ref !== 'refs/heads/main') { 46 | core.setFailed(`Invalid git branch (expected 'refs/heads/main', got '${context.ref}').`) 47 | return 48 | } 49 | 50 | const fs = require('fs') 51 | const image_name = context.payload.inputs.image_name 52 | const image_tag = context.payload.inputs.image_tag 53 | 54 | if (!fs.existsSync(image_name) || !fs.statSync(image_name).isDirectory()) { 55 | core.setFailed(`Invalid image name '${image_name}'.`) 56 | return 57 | } 58 | 59 | if (!fs.existsSync(`${image_name}/${image_tag}`) || !fs.statSync(`${image_name}/${image_tag}`).isDirectory()) { 60 | core.setFailed(`Invalid image tag '${image_tag}' with image name '${image_name}'.`) 61 | return 62 | } 63 | 64 | - name: Set up qemu 65 | uses: docker/setup-qemu-action@v3 # See https://github.com/docker/setup-qemu-action 66 | 67 | - name: Set up buildx 68 | uses: docker/setup-buildx-action@v3 # See https://github.com/docker/setup-buildx-action 69 | 70 | - name: Login to dockerhub 71 | uses: docker/login-action@v3 # See https://github.com/docker/login-action 72 | with: 73 | username: ${{ secrets.DOCKERHUB_USERNAME }} 74 | password: ${{ secrets.DOCKERHUB_TOKEN }} # Get access token from https://hub.docker.com/settings/security 75 | 76 | # Hack from https://stackoverflow.com/questions/58913512/how-to-give-github-action-the-content-of-a-file-as-input 77 | - name: Read platforms 78 | id: read_platforms 79 | working-directory: ${{ env.WORKING_DIRECTORY }} 80 | run: | 81 | echo "platforms=$(cat platforms.txt)" >> $GITHUB_OUTPUT 82 | 83 | # See also https://github.com/docker/metadata-action 84 | - name: Generate labels 85 | id: generate_labels 86 | uses: actions/github-script@v7 # See https://github.com/actions/github-script 87 | with: 88 | script: | 89 | const labels = [] 90 | 91 | labels.push(`com.github.actions.event_name=${context.eventName}`) 92 | labels.push(`com.github.actions.job=${context.job}`) 93 | labels.push(`com.github.actions.run_id=${context.runId}`) 94 | labels.push(`com.github.actions.run_url=${context.payload.repository.html_url}/actions/runs/${context.runId}`) 95 | 96 | labels.push(`org.opencontainers.image.created=${new Date().toISOString()}`) 97 | labels.push(`org.opencontainers.image.documentation=${context.payload.repository.html_url}/tree/${context.sha.substr(0,7)}/${context.payload.inputs.image_name}/README.md`) 98 | labels.push(`org.opencontainers.image.revision=${context.sha}`) 99 | labels.push(`org.opencontainers.image.source=${context.payload.repository.html_url}`) 100 | 101 | core.startGroup('Generated labels') 102 | for (const label of labels) { 103 | core.info(label) 104 | } 105 | core.endGroup() 106 | 107 | core.setOutput('labels', labels.join('\n')) 108 | 109 | - name: Run pre build hook 110 | id: pre_build 111 | working-directory: ${{ env.WORKING_DIRECTORY }} 112 | run: | 113 | if [[ -f hooks/pre_build ]]; then ./hooks/pre_build; fi 114 | 115 | - name: Build and push 116 | uses: docker/build-push-action@v6 # See https://github.com/docker/build-push-action 117 | with: 118 | context: ${{ env.WORKING_DIRECTORY }} 119 | labels: | 120 | ${{ steps.generate_labels.outputs.labels }} 121 | ${{ steps.pre_build.outputs.extra_labels }} 122 | platforms: ${{ steps.read_platforms.outputs.platforms }} 123 | push: true 124 | tags: | 125 | ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} 126 | ${{ steps.pre_build.outputs.extra_tags }} 127 | -------------------------------------------------------------------------------- /.github/workflows/mirror.yaml: -------------------------------------------------------------------------------- 1 | name: mirror 2 | 3 | on: # yamllint disable-line rule:truthy 4 | - create 5 | - delete 6 | - push 7 | - workflow_dispatch 8 | 9 | jobs: 10 | gitlab: 11 | name: gitlab 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v4 15 | with: 16 | fetch-depth: 0 17 | - name: Push to gitlab 18 | env: 19 | GITLAB_DEPLOY_KEY: ${{ secrets.GITLAB_DEPLOY_KEY }} 20 | GITLAB_PUBLIC_KEY: gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf 21 | GITLAB_REPOSITORY: git@gitlab.com:${{ github.repository }}.git 22 | run: | 23 | eval `ssh-agent` 24 | ssh-add - <<< $GITLAB_DEPLOY_KEY 25 | install -D <(echo $GITLAB_PUBLIC_KEY) ~/.ssh/known_hosts 26 | git push --force --prune $GITLAB_REPOSITORY +refs/remotes/origin/*:refs/heads/* +refs/tags/*:refs/tags/* 27 | kill $SSH_AGENT_PID 28 | -------------------------------------------------------------------------------- /.github/workflows/schedule.yaml: -------------------------------------------------------------------------------- 1 | name: schedule 2 | 3 | on: 4 | schedule: # See https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#schedule 5 | - cron: "0 0 * * *" 6 | workflow_dispatch: # See https://docs.github.com/en/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#workflow_dispatch 7 | 8 | jobs: 9 | schedule: 10 | name: schedule 11 | strategy: 12 | matrix: 13 | image_name: 14 | - caddy-dns-ovh 15 | - curl-http2 16 | - curl-jq 17 | - curl-jq-yq 18 | - easy-blake2s 19 | - oh-my-via 20 | - python-scrapy 21 | - rancher-cli 22 | - toolbox 23 | uses: ./.github/workflows/buildx.yaml 24 | with: 25 | image_name: ${{ matrix.image_name }} 26 | image_tag: latest 27 | -------------------------------------------------------------------------------- /.hadolint.yaml: -------------------------------------------------------------------------------- 1 | ignored: 2 | - DL3007 3 | - DL3008 4 | - DL3018 5 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "markdownlint.config": { 3 | "MD045": false, 4 | }, 5 | "[dockerfile]": { 6 | "editor.insertSpaces": true, 7 | "editor.tabSize": 4 8 | }, 9 | } 10 | -------------------------------------------------------------------------------- /HOOKS.md: -------------------------------------------------------------------------------- 1 | # Hooks 2 | 3 | The `buildx` workflow runs `hooks/pre_build` if it exists in the image folder. Do not forget the `set -euo pipefail` safeguard. 4 | 5 | This pre build hook can output `extra_labels` and `extra_tags` that will be used during the build and push steps. 6 | 7 | See . 8 | 9 | ## History 10 | 11 | This repository used to leverage dockerhub custom build phase hooks. 12 | 13 | Now that images are built with github actions, these hooks were re-implemented to run as dedicated steps. 14 | 15 | ## Documentation 16 | 17 | - 18 | - 19 | -------------------------------------------------------------------------------- /LABELS.md: -------------------------------------------------------------------------------- 1 | # Labels 2 | 3 | Docker images built from this repository are annotated with 4 | [docker labels](https://docs.docker.com/engine/reference/builder/#label) that 5 | provide metadata around the image. 6 | 7 | We used to follow the [Label Schema Convention (RC1)](http://label-schema.org/rc1/). 8 | As it is now deprecated, we currently follow the 9 | [OCI Image Spec](https://github.com/opencontainers/image-spec/blob/master/annotations.md). 10 | 11 | ## Label Schema Convention (RC1) 12 | 13 | These labels are not set anymore. This section is kept for purely historical 14 | reasons. 15 | 16 | | Label Key | Source | 17 | | :-------------------------------- | :---------: | 18 | | `maintainer` | Dockerfile | 19 | | `org.label-schema.build-date` | hooks/build | 20 | | `org.label-schema.docker.context` | hooks/build | 21 | | `org.label-schema.vcs-ref` | hooks/build | 22 | | `org.label-schema.vcs-url` | hooks/build | 23 | | `org.label-schema.schema-version` | hooks/build | 24 | 25 | ## OCI Image Spec 26 | 27 | | Label Key | Source | 28 | | :--------------------------------------- | :--------: | 29 | | `org.opencontainers.image.authors` | Dockerfile | 30 | | `org.opencontainers.image.created` | buildx | 31 | | `org.opencontainers.image.description` | Dockerfile | 32 | | `org.opencontainers.image.documentation` | buildx | 33 | | `org.opencontainers.image.licenses` | | 34 | | `org.opencontainers.image.ref.name` | | 35 | | `org.opencontainers.image.revision` | buildx | 36 | | `org.opencontainers.image.source` | buildx | 37 | | `org.opencontainers.image.title` | | 38 | | `org.opencontainers.image.url` | | 39 | | `org.opencontainers.image.vendor` | | 40 | | `org.opencontainers.image.version` | | 41 | 42 | ## Github Actions 43 | 44 | | Label Key | Source | 45 | | :------------------------------ | :----: | 46 | | `com.github.actions.event_name` | buildx | 47 | | `com.github.actions.job` | buildx | 48 | | `com.github.actions.run_id` | buildx | 49 | | `com.github.actions.run_url` | buildx | 50 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Ayaz Badouraly 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dockerfiles 2 | 3 | [![Github Actions Buildx](https://github.com/badouralix/dockerfiles/actions/workflows/buildx.yaml/badge.svg)](https://github.com/badouralix/dockerfiles/actions/workflows/buildx.yaml) 4 | 5 | This repository contains some Dockerfiles. 6 | 7 | See the repo on [Docker Hub](https://hub.docker.com/u/badouralix/). 8 | 9 | - [Current dockerfiles](#current-dockerfiles) 10 | - [Usage](#usage) 11 | - [Build it yourself](#build-it-yourself) 12 | - [Check out only some subdirectories](#check-out-only-some-subdirectories) 13 | - [Tips and tricks](#tips-and-tricks) 14 | - [Create a new image](#create-a-new-image) 15 | - [License](#license) 16 | 17 | ## Current dockerfiles 18 | 19 | - [*caddy-dns-ovh*](https://hub.docker.com/r/badouralix/caddy-dns-ovh) - caddy built with the OVH module \ 20 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/caddy-dns-ovh?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/caddy-dns-ovh) 21 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/caddy-dns-ovh?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/caddy-dns-ovh) 22 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/caddy-dns-ovh?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/caddy-dns-ovh) 23 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/caddy-dns-ovh?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/caddy-dns-ovh) 24 | 25 | - [*curl-http2*](https://hub.docker.com/r/badouralix/curl-http2) - alpine-based docker image for curl with http2 support \ 26 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/curl-http2?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http2) 27 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/curl-http2?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http2) 28 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/curl-http2?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http2) 29 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/curl-http2?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http2) 30 | 31 | - [*curl-http3*](https://hub.docker.com/r/badouralix/curl-http3) - debian-based docker image for curl with http3 support (ngtcp2+openssl) \ 32 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/curl-http3?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http3) 33 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/curl-http3?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http3) 34 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/curl-http3?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http3) 35 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/curl-http3?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http3) 36 | 37 | - [*curl-jq*](https://hub.docker.com/r/badouralix/curl-jq) - alpine-based docker image with `curl` and `jq` \ 38 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/curl-jq?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq) 39 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/curl-jq?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq) 40 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/curl-jq?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq) 41 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/curl-jq?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq) 42 | 43 | - [*curl-jq-yq*](https://hub.docker.com/r/badouralix/curl-jq-yq) - alpine-based docker image with `curl`, `jq` and `yq` \ 44 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/curl-jq-yq?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq-yq) 45 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/curl-jq-yq?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq-yq) 46 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/curl-jq-yq?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq-yq) 47 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/curl-jq-yq?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq-yq) 48 | 49 | - [*deplacement-covid-19*](https://hub.docker.com/r/badouralix/deplacement-covid-19) - alpine-based docker image serving the official covid-19 générateur d'attestation de déplacement dérogatoire \ 50 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/deplacement-covid-19?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/deplacement-covid-19) 51 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/deplacement-covid-19?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/deplacement-covid-19) 52 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/deplacement-covid-19?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/deplacement-covid-19) 53 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/deplacement-covid-19?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/deplacement-covid-19) 54 | 55 | - [*easy-blake2s*](https://hub.docker.com/r/badouralix/easy-blake2s) - alpine-based docker image to compute blake2s hashes \ 56 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/easy-blake2s?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/easy-blake2s) 57 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/easy-blake2s?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/easy-blake2s) 58 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/easy-blake2s?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/easy-blake2s) 59 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/easy-blake2s?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/easy-blake2s) 60 | 61 | - [*linux-headers*](https://hub.docker.com/r/badouralix/linux-headers) - toolbox to run eBPF programs on Docker Desktop \ 62 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/linux-headers?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/linux-headers) 63 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/linux-headers?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/linux-headers) 64 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/linux-headers?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/linux-headers) 65 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/linux-headers?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/linux-headers) 66 | 67 | - *lustre* - debian-based docker image for Lustre V4 68 | 69 | - [*nusmv*](https://hub.docker.com/r/badouralix/nusmv) - alpine-based docker image with NuSMV and zchaff SAT solver \ 70 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/nusmv?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/nusmv) 71 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/nusmv?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/nusmv) 72 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/nusmv?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/nusmv) 73 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/nusmv?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/nusmv) 74 | 75 | - [*oh-my-via*](https://hub.docker.com/r/badouralix/oh-my-via) - image for oh-my-via theme testing purpose \ 76 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/oh-my-via?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/oh-my-via) 77 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/oh-my-via?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/oh-my-via) 78 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/oh-my-via?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/oh-my-via) 79 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/oh-my-via?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/oh-my-via) 80 | 81 | - [*python-scrapy*](https://hub.docker.com/r/badouralix/python-scrapy) - debian-based docker image for scrapy \ 82 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/python-scrapy?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-scrapy) 83 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/python-scrapy?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-scrapy) 84 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/python-scrapy?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-scrapy) 85 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/python-scrapy?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-scrapy) 86 | 87 | - [*python-vipaccess*](https://hub.docker.com/r/badouralix/python-vipaccess) - alpine-based docker image for \ 88 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/python-vipaccess?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-vipaccess) 89 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/python-vipaccess?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-vipaccess) 90 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/python-vipaccess?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-vipaccess) 91 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/python-vipaccess?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-vipaccess) 92 | 93 | - *r-languageserver* - multi-base docker images with R and R-languageserver 94 | 95 | - [*rancher-cli*](https://hub.docker.com/r/badouralix/rancher-cli) - rancher-cli for gitlab-ci \ 96 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/rancher-cli?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/rancher-cli) 97 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/rancher-cli?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/rancher-cli) 98 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/rancher-cli?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/rancher-cli) 99 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/rancher-cli?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/rancher-cli) 100 | 101 | - [*toolbox*](https://hub.docker.com/r/badouralix/toolbox) - debian-based image with useful linux tools \ 102 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/toolbox?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/toolbox) 103 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/toolbox?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/toolbox) 104 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/toolbox?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/toolbox) 105 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/toolbox?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/toolbox) 106 | 107 | - [*zunit*](https://hub.docker.com/r/badouralix/zunit) - alpine-based image for ZUnit, a powerful unit testing framework for ZSH \ 108 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/zunit?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/zunit) 109 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/zunit?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/zunit) 110 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/zunit?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/zunit) 111 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/zunit?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/zunit) 112 | 113 | ## Usage 114 | 115 | ### Build it yourself 116 | 117 | ```bash 118 | git clone https://github.com/badouralix/dockerfiles.git badouralix-dockerfiles 119 | cd badouralix-dockerfiles//latest 120 | docker build -t $USER-local/ . 121 | ``` 122 | 123 | ### Check out only some subdirectories 124 | 125 | As of git version 1.7, you can check out just a subtree, using `core.sparsecheckout` option. 126 | 127 | ### Tips and tricks 128 | 129 | Give a try, for painless and carefree docker build ! 130 | 131 | ### Create a new image 132 | 133 | ```bash 134 | ./bootstrap.sh 135 | ``` 136 | 137 | ## License 138 | 139 | Unless expressly stated otherwise, all contents licensed under the [MIT License](LICENSE). 140 | -------------------------------------------------------------------------------- /bootstrap.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Fail hard 4 | set -euxo pipefail 5 | 6 | # Create image folder 7 | mkdir -p "$1/latest" 8 | 9 | # Create an empty dockerfile 10 | touch "$1/latest/Dockerfile" 11 | 12 | # Create default readme 13 | # See syntax in http://tldp.org/LDP/abs/html/here-docs.html 14 | cat > "$1/README.md" < "$1/latest/.dockerignore" < "$1/latest/platforms.txt" < for configuration details. 15 | 16 | ```bash 17 | docker run \ 18 | --detach \ 19 | --label "com.datadoghq.ad.logs"='[{"service": "caddy", "source": "go"}]' \ 20 | --name caddy \ 21 | --publish 443:443 \ 22 | --restart always \ 23 | -v caddy-config:/config -v caddy-data:/data -v caddy-etc:/etc/caddy \ 24 | badouralix/caddy-dns-ovh 25 | ``` 26 | 27 | Create keys in 28 | 29 | | Field | Value | 30 | | :---------------------- | :---------------------------------- | 31 | | Application name | caddy-dns-ovh | 32 | | Application description | Resolve ACME DNS-01 challenge | 33 | | Validity | Unlimited | 34 | | Rights | POST /domain/zone/[FQDN]/record | 35 | | Rights | POST /domain/zone/[FQDN]/refresh | 36 | | Rights | DELETE /domain/zone/[FQDN]/record/* | 37 | 38 | ## License 39 | 40 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 41 | -------------------------------------------------------------------------------- /caddy-dns-ovh/latest: -------------------------------------------------------------------------------- 1 | 2.9.1 -------------------------------------------------------------------------------- /curl-http2/README.md: -------------------------------------------------------------------------------- 1 | # curl-http2 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/curl-http2?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http2) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/curl-http2?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http2) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/curl-http2?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http2) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/curl-http2?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http2) 7 | 8 | This repository contains a **Dockerfile** for [curl](https://curl.haxx.se/) with http2 support. 9 | 10 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/curl-http2/). 11 | 12 | ## Installation 13 | 14 | ### Automated build 15 | 16 | ```bash 17 | docker pull badouralix/curl-http2 18 | ``` 19 | 20 | ### Self build 21 | 22 | ```bash 23 | BASE_IMAGE=latest 24 | git clone https://github.com/badouralix/dockerfiles.git 25 | cd dockerfiles/curl-http2/$BASE_IMAGE 26 | docker build -t $USER-local/curl-http2:$BASE_IMAGE . 27 | ``` 28 | 29 | ## Usage 30 | 31 | ```bash 32 | $ docker run -t --rm badouralix/curl-http2 -I https://nghttp2.org/ 33 | 34 | HTTP/2 200 35 | date: Wed, 12 Apr 2017 00:26:57 GMT 36 | content-type: text/html 37 | last-modified: Sun, 09 Apr 2017 13:25:12 GMT 38 | etag: "58ea3638-19ff" 39 | accept-ranges: bytes 40 | content-length: 6655 41 | x-backend-header-rtt: 0.001404 42 | strict-transport-security: max-age=31536000 43 | server: nghttpx 44 | via: 2 nghttpx 45 | x-frame-options: SAMEORIGIN 46 | x-xss-protection: 1; mode=block 47 | x-content-type-options: nosniff 48 | ``` 49 | 50 | ## Tips and tricks 51 | 52 | In your shell rc dotfile, you could add an `alias 'curl-http2'='docker run -t --rm badouralix/curl-http2'` 53 | so that you would just have to run : 54 | 55 | ```bash 56 | curl-http2 https://nghttp2.org/ 57 | ``` 58 | 59 | ## Tags 60 | 61 | All images are using the distribution `curl` package. 62 | 63 | - `latest`, `alpine` : image based on `alpine:latest` 64 | - `debian` : image based on `debian:latest` 65 | 66 | ## Versions, protocols and features 67 | 68 | :warning: this may change as the latest base image changes 69 | 70 | ### Alpine 71 | 72 | ```bash 73 | curl 7.79.1 (x86_64-alpine-linux-musl) libcurl/7.79.1 OpenSSL/1.1.1l zlib/1.2.11 brotli/1.0.9 nghttp2/1.43.0 74 | Release-Date: 2021-09-22 75 | Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 76 | Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets 77 | ``` 78 | 79 | ### Debian 80 | 81 | ```bash 82 | curl 7.74.0 (x86_64-pc-linux-gnu) libcurl/7.74.0 OpenSSL/1.1.1k zlib/1.2.11 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.0 (+libidn2/2.3.0) libssh2/1.9.0 nghttp2/1.43.0 librtmp/2.3 83 | Release-Date: 2020-12-09 84 | Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp 85 | Features: alt-svc AsynchDNS brotli GSS-API HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets 86 | ``` 87 | 88 | ## License 89 | 90 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 91 | -------------------------------------------------------------------------------- /curl-http2/alpine/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /curl-http2/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Docker image for curl with http2 support" 6 | 7 | # Install curl package as nowadays it comes with http2 support 8 | RUN apk add --no-cache curl 9 | 10 | # Setup entrypoint and cmd 11 | COPY entrypoint.sh / 12 | 13 | ENTRYPOINT [ "/entrypoint.sh" ] 14 | CMD [ "curl", "--http2" ] 15 | -------------------------------------------------------------------------------- /curl-http2/alpine/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (C) 2015 Appropriate Computing 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 6 | # documentation files (the "Software"), to deal in the Software without restriction, including without limitation the 7 | # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit 8 | # persons to whom the Software is furnished to do so, subject to the following conditions: 9 | # 10 | # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the 11 | # Software. 12 | # 13 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 14 | # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 16 | # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | # 18 | 19 | set -e 20 | 21 | # Prepend "curl" if the first argument is not an executable 22 | if ! type -- "$1" &> /dev/null; then 23 | set -- curl "$@" 24 | fi 25 | 26 | exec "$@" 27 | -------------------------------------------------------------------------------- /curl-http2/alpine/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6 2 | -------------------------------------------------------------------------------- /curl-http2/debian/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /curl-http2/debian/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Docker image for curl with http2 support" 6 | 7 | # Install curl package as nowadays it comes with http2 support 8 | RUN apt-get update && \ 9 | apt-get install --assume-yes --no-install-recommends curl && \ 10 | rm -rf /var/cache/apt/* /var/lib/apt/lists/* && \ 11 | rm -rf /tmp/* /var/tmp/* 12 | 13 | # Setup entrypoint and cmd 14 | COPY entrypoint.sh / 15 | 16 | ENTRYPOINT [ "/entrypoint.sh" ] 17 | CMD [ "curl", "--http2" ] 18 | -------------------------------------------------------------------------------- /curl-http2/debian/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright (C) 2015 Appropriate Computing 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 6 | # documentation files (the "Software"), to deal in the Software without restriction, including without limitation the 7 | # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit 8 | # persons to whom the Software is furnished to do so, subject to the following conditions: 9 | # 10 | # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the 11 | # Software. 12 | # 13 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 14 | # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 16 | # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | # 18 | 19 | set -e 20 | 21 | # Prepend "curl" if the first argument is not an executable 22 | if ! type -- "$1" &> /dev/null; then 23 | set -- curl "$@" 24 | fi 25 | 26 | exec "$@" 27 | -------------------------------------------------------------------------------- /curl-http2/debian/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/arm/v7,linux/arm/v6 2 | -------------------------------------------------------------------------------- /curl-http2/latest: -------------------------------------------------------------------------------- 1 | alpine -------------------------------------------------------------------------------- /curl-http3/README.md: -------------------------------------------------------------------------------- 1 | # curl-http3 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/curl-http3?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http3) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/curl-http3?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http3) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/curl-http3?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http3) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/curl-http3?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-http3) 7 | 8 | This repository contains a **Dockerfile** for [curl](https://curl.haxx.se/) with http3 support ([ngtcp2+openssl](https://github.com/curl/curl/blob/ca847ba/docs/HTTP3.md#build-with-openssl)). 9 | 10 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/curl-http3/). 11 | 12 | ## Usage 13 | 14 | ```bash 15 | $ docker run -t --rm badouralix/curl-http3 -I https://nghttp2.org:4433/ 16 | 17 | HTTP/3 200 18 | server: nghttp3/ngtcp2 server 19 | content-type: text/html 20 | content-length: 6616 21 | ``` 22 | 23 | ## Tips and tricks 24 | 25 | In your shell rc dotfile, you could add an `alias 'curl-http3'='docker run -t --rm badouralix/curl-http3'` so that you would just have to run : 26 | 27 | ```bash 28 | curl-http3 https://nghttp2.org:4433/ 29 | ``` 30 | 31 | ## Versions, protocols and features 32 | 33 | :warning: this may change as the latest base image changes 34 | 35 | ### Debian 36 | 37 | ```bash 38 | curl 7.80.1-DEV (x86_64-pc-linux-gnu) libcurl/7.80.1-DEV OpenSSL/3.0.0 ngtcp2/0.1.0-DEV nghttp3/0.1.0-DEV 39 | Release-Date: [unreleased] 40 | Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 41 | Features: alt-svc AsynchDNS HSTS HTTP3 HTTPS-proxy IPv6 Largefile NTLM NTLM_WB SSL TLS-SRP UnixSockets 42 | ``` 43 | 44 | ## License 45 | 46 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 47 | -------------------------------------------------------------------------------- /curl-http3/latest/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /curl-http3/latest/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Docker image for curl with http3 support (ngtcp2+openssl)" 6 | 7 | # Install build dependecies 8 | RUN apt-get update && \ 9 | apt-get install --assume-yes --no-install-recommends ca-certificates dh-autoreconf gcc git make pkg-config 10 | 11 | # Build quictls/openssl from source 12 | RUN git clone --depth 1 -b openssl-3.0.0+quic https://github.com/quictls/openssl && \ 13 | cd openssl && \ 14 | ./config enable-tls1_3 --prefix=/usr/local && \ 15 | make && \ 16 | make install 17 | 18 | # Build nghttp3 from source 19 | RUN cd .. && \ 20 | git clone https://github.com/ngtcp2/nghttp3 && \ 21 | cd nghttp3 && \ 22 | autoreconf -fi && \ 23 | ./configure --prefix=/usr/local --enable-lib-only && \ 24 | make && \ 25 | make install 26 | 27 | # Build ngtcp2 from source 28 | RUN cd .. && \ 29 | git clone https://github.com/ngtcp2/ngtcp2 && \ 30 | cd ngtcp2 && \ 31 | autoreconf -fi && \ 32 | ./configure PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig LDFLAGS="-Wl,-rpath,/usr/local/lib64" --prefix=/usr/local --enable-lib-only && \ 33 | make && \ 34 | make install 35 | 36 | # Build curl from source 37 | RUN cd .. && \ 38 | git clone https://github.com/curl/curl && \ 39 | cd curl && \ 40 | autoreconf -fi && \ 41 | LDFLAGS="-Wl,-rpath,/usr/local/lib64" ./configure --with-openssl=/usr/local --with-nghttp3=/usr/local --with-ngtcp2=/usr/local && \ 42 | make && \ 43 | make install 44 | 45 | # Update shared library cache 46 | RUN ldconfig 47 | 48 | # Setup entrypoint and cmd 49 | COPY entrypoint.sh / 50 | 51 | ENTRYPOINT [ "/entrypoint.sh" ] 52 | CMD [ "curl", "--http3" ] 53 | -------------------------------------------------------------------------------- /curl-http3/latest/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright (C) 2015 Appropriate Computing 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 6 | # documentation files (the "Software"), to deal in the Software without restriction, including without limitation the 7 | # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit 8 | # persons to whom the Software is furnished to do so, subject to the following conditions: 9 | # 10 | # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the 11 | # Software. 12 | # 13 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 14 | # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 15 | # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 16 | # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | # 18 | 19 | set -e 20 | 21 | # Prepend "curl" if the first argument is not an executable 22 | if ! type -- "$1" &> /dev/null; then 23 | set -- curl --http3 "$@" 24 | fi 25 | 26 | exec "$@" 27 | -------------------------------------------------------------------------------- /curl-http3/latest/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /curl-jq-yq/README.md: -------------------------------------------------------------------------------- 1 | # curl-jq-yq 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/curl-jq-yq?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq-yq) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/curl-jq-yq?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq-yq) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/curl-jq-yq?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq-yq) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/curl-jq-yq?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq-yq) 7 | 8 | This **Dockerfile** embeds both `curl`, `jq` and `yq`, and can be used to run complex extractions on remote json or yaml resources. 9 | 10 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/curl-jq-yq/). 11 | 12 | ## Usage 13 | 14 | ### Shell mode 15 | 16 | ```bash 17 | $ docker run -it --rm badouralix/curl-jq-yq 18 | / # curl https://hub.docker.com/api/build/v1/source/?image=badouralix%2Ftoolbox 2>/dev/null | jq '.objects[0]' 19 | { 20 | "autotests": "OFF", 21 | "build_in_farm": true, 22 | "build_settings": [ 23 | "/api/build/v1/setting/cbb58db1-5001-499a-8d1a-d549535fc077/" 24 | ], 25 | "channel": "Stable", 26 | "image": "badouralix/toolbox", 27 | "owner": "badouralix", 28 | "provider": "Github", 29 | "repo_links": true, 30 | "repository": "dockerfiles", 31 | "resource_uri": "/api/build/v1/source/e985c621-a0af-40d4-b84b-f01ae12a0b64/", 32 | "state": "Success", 33 | "uuid": "e985c621-a0af-40d4-b84b-f01ae12a0b64" 34 | } 35 | ``` 36 | 37 | ### Inline mode 38 | 39 | ```bash 40 | $ docker run --rm badouralix/curl-jq-yq sh -c "curl https://hub.docker.com/api/build/v1/source/?image=badouralix%2Ftoolbox 2>/dev/null | jq '.objects[0]'" 41 | { 42 | "autotests": "OFF", 43 | "build_in_farm": true, 44 | "build_settings": [ 45 | "/api/build/v1/setting/cbb58db1-5001-499a-8d1a-d549535fc077/" 46 | ], 47 | "channel": "Stable", 48 | "image": "badouralix/toolbox", 49 | "owner": "badouralix", 50 | "provider": "Github", 51 | "repo_links": true, 52 | "repository": "dockerfiles", 53 | "resource_uri": "/api/build/v1/source/e985c621-a0af-40d4-b84b-f01ae12a0b64/", 54 | "state": "Success", 55 | "uuid": "e985c621-a0af-40d4-b84b-f01ae12a0b64" 56 | } 57 | ``` 58 | 59 | ## License 60 | 61 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 62 | -------------------------------------------------------------------------------- /curl-jq-yq/alpine/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /curl-jq-yq/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Smallest docker image with curl, jq and yq" 6 | 7 | # Install curl, jq and yq 8 | RUN apk add --no-cache curl jq yq 9 | -------------------------------------------------------------------------------- /curl-jq-yq/alpine/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6 2 | -------------------------------------------------------------------------------- /curl-jq-yq/debian/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /curl-jq-yq/debian/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Smallest docker image with curl, jq and yq" 6 | 7 | # Install curl, jq and yq 8 | RUN apt-get update && \ 9 | apt-get install --assume-yes --no-install-recommends curl jq yq && \ 10 | rm -rf /var/cache/apt/* /var/lib/apt/lists/* && \ 11 | rm -rf /tmp/* /var/tmp/* 12 | -------------------------------------------------------------------------------- /curl-jq-yq/debian/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/arm/v7,linux/arm/v6 2 | -------------------------------------------------------------------------------- /curl-jq-yq/latest: -------------------------------------------------------------------------------- 1 | alpine -------------------------------------------------------------------------------- /curl-jq-yq/ubuntu/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /curl-jq-yq/ubuntu/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Smallest docker image with curl, jq and yq" 6 | 7 | # Install curl, jq and yq 8 | RUN apt-get update && \ 9 | apt-get install --assume-yes --no-install-recommends curl jq yq && \ 10 | rm -rf /var/cache/apt/* /var/lib/apt/lists/* && \ 11 | rm -rf /tmp/* /var/tmp/* 12 | -------------------------------------------------------------------------------- /curl-jq-yq/ubuntu/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/arm/v7 2 | -------------------------------------------------------------------------------- /curl-jq/README.md: -------------------------------------------------------------------------------- 1 | # curl-jq 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/curl-jq?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/curl-jq?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/curl-jq?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/curl-jq?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/curl-jq) 7 | 8 | This **Dockerfile** embeds both `curl` and `jq`, and can be used to run complex extractions on remote json resources. 9 | 10 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/curl-jq/). 11 | 12 | ## Usage 13 | 14 | ### Shell mode 15 | 16 | ```bash 17 | $ docker run -it --rm badouralix/curl-jq 18 | / # curl https://hub.docker.com/api/build/v1/source/?image=badouralix%2Ftoolbox 2>/dev/null | jq '.objects[0]' 19 | { 20 | "autotests": "OFF", 21 | "build_in_farm": true, 22 | "build_settings": [ 23 | "/api/build/v1/setting/cbb58db1-5001-499a-8d1a-d549535fc077/" 24 | ], 25 | "channel": "Stable", 26 | "image": "badouralix/toolbox", 27 | "owner": "badouralix", 28 | "provider": "Github", 29 | "repo_links": true, 30 | "repository": "dockerfiles", 31 | "resource_uri": "/api/build/v1/source/e985c621-a0af-40d4-b84b-f01ae12a0b64/", 32 | "state": "Success", 33 | "uuid": "e985c621-a0af-40d4-b84b-f01ae12a0b64" 34 | } 35 | ``` 36 | 37 | ### Inline mode 38 | 39 | ```bash 40 | $ docker run --rm badouralix/curl-jq sh -c "curl https://hub.docker.com/api/build/v1/source/?image=badouralix%2Ftoolbox 2>/dev/null | jq '.objects[0]'" 41 | { 42 | "autotests": "OFF", 43 | "build_in_farm": true, 44 | "build_settings": [ 45 | "/api/build/v1/setting/cbb58db1-5001-499a-8d1a-d549535fc077/" 46 | ], 47 | "channel": "Stable", 48 | "image": "badouralix/toolbox", 49 | "owner": "badouralix", 50 | "provider": "Github", 51 | "repo_links": true, 52 | "repository": "dockerfiles", 53 | "resource_uri": "/api/build/v1/source/e985c621-a0af-40d4-b84b-f01ae12a0b64/", 54 | "state": "Success", 55 | "uuid": "e985c621-a0af-40d4-b84b-f01ae12a0b64" 56 | } 57 | ``` 58 | 59 | ## License 60 | 61 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 62 | -------------------------------------------------------------------------------- /curl-jq/alpine/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /curl-jq/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Smallest docker image with curl and jq" 6 | 7 | # Install curl and jq 8 | RUN apk add --no-cache curl jq 9 | -------------------------------------------------------------------------------- /curl-jq/alpine/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6 2 | -------------------------------------------------------------------------------- /curl-jq/debian/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /curl-jq/debian/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Smallest docker image with curl and jq" 6 | 7 | # Install curl and jq 8 | RUN apt-get update && \ 9 | apt-get install --assume-yes --no-install-recommends curl jq && \ 10 | rm -rf /var/cache/apt/* /var/lib/apt/lists/* && \ 11 | rm -rf /tmp/* /var/tmp/* 12 | -------------------------------------------------------------------------------- /curl-jq/debian/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/arm/v7,linux/arm/v6 2 | -------------------------------------------------------------------------------- /curl-jq/latest: -------------------------------------------------------------------------------- 1 | alpine -------------------------------------------------------------------------------- /curl-jq/ubuntu/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /curl-jq/ubuntu/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Smallest docker image with curl and jq" 6 | 7 | # Install curl and jq 8 | RUN apt-get update && \ 9 | apt-get install --assume-yes --no-install-recommends curl jq && \ 10 | rm -rf /var/cache/apt/* /var/lib/apt/lists/* && \ 11 | rm -rf /tmp/* /var/tmp/* 12 | -------------------------------------------------------------------------------- /curl-jq/ubuntu/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/arm/v7 2 | -------------------------------------------------------------------------------- /deplacement-covid-19/README.md: -------------------------------------------------------------------------------- 1 | # deplacement-covid-19 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/deplacement-covid-19?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/deplacement-covid-19) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/deplacement-covid-19?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/deplacement-covid-19) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/deplacement-covid-19?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/deplacement-covid-19) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/deplacement-covid-19?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/deplacement-covid-19) 7 | 8 | This **Dockerfile** builds an image serving the official covid-19 générateur d'attestation de déplacement dérogatoire. 9 | 10 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/deplacement-covid-19/). 11 | 12 | ## Usage 13 | 14 | ```bash 15 | docker run -it --rm -p 8080:80 badouralix/deplacement-covid-19 16 | ``` 17 | 18 | Then open on your browser. 19 | 20 | ### Q2 2020 21 | 22 | ![](https://user-images.githubusercontent.com/19719047/103173979-b8d49f80-485e-11eb-9886-a26c41e7c60b.png) 23 | 24 | ### Q4 2020 25 | 26 | ![](https://user-images.githubusercontent.com/19719047/103173963-9a6ea400-485e-11eb-8ac8-a40af7dbb4da.png) 27 | 28 | ### Couvre Feu 29 | 30 | ![](https://user-images.githubusercontent.com/19719047/103173934-672c1500-485e-11eb-8a22-6b3d7ee4bdf8.png) 31 | 32 | ## Links 33 | 34 | - 35 | - or 36 | - 37 | - 38 | - 39 | 40 | ## License 41 | 42 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 43 | -------------------------------------------------------------------------------- /deplacement-covid-19/couvre-feu-v1/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /deplacement-covid-19/couvre-feu-v1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:alpine AS build 2 | # Install utils and chromium because why not ( postbuild and react-snap ) 3 | # See https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md#running-on-alpine 4 | RUN apk add --no-cache chromium g++ git jq make moreutils python3 5 | # Fetch sources 6 | RUN git clone --depth=1 https://github.com/LAB-MI/attestation-couvre-feu-covid-19.git /attestation-couvre-feu-covid-19 7 | # Setup environment 8 | WORKDIR /attestation-couvre-feu-covid-19 9 | ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true 10 | ENV PUBLIC_URL / 11 | # Yolo patch package.json to run build in docker 12 | RUN cat package.json | jq '.reactSnap.puppeteerExecutablePath="/usr/bin/chromium-browser" | .reactSnap.puppeteerArgs=["--no-sandbox", "--disable-dev-shm-usage"]' | sponge package.json 13 | # Build site 14 | RUN npm install 15 | RUN VERSION=`git rev-parse --short HEAD` npm run build 16 | 17 | FROM nginx:alpine 18 | # Set non-built-time labels 19 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 20 | LABEL org.opencontainers.image.description="Standalone version of https://media.interieur.gouv.fr/deplacement-covid-19/" 21 | # Retrieve static files from build stage 22 | COPY --from=build /attestation-couvre-feu-covid-19/dist /usr/share/nginx/html 23 | -------------------------------------------------------------------------------- /deplacement-covid-19/couvre-feu-v1/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /deplacement-covid-19/couvre-feu-v2/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /deplacement-covid-19/couvre-feu-v2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:alpine AS build 2 | # Install utils and chromium because why not ( postbuild and react-snap ) 3 | # See https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md#running-on-alpine 4 | RUN apk add --no-cache chromium g++ git jq make moreutils python3 5 | # Fetch sources 6 | RUN git clone --depth=1 https://github.com/LAB-MI/attestation-deplacement-derogatoire-covid-19.git /attestation-deplacement-derogatoire-covid-19 7 | # Setup environment 8 | WORKDIR /attestation-deplacement-derogatoire-covid-19 9 | ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true 10 | ENV PUBLIC_URL / 11 | # Yolo patch package.json to run build in docker 12 | RUN cat package.json | jq '.reactSnap.puppeteerExecutablePath="/usr/bin/chromium-browser" | .reactSnap.puppeteerArgs=["--no-sandbox", "--disable-dev-shm-usage"]' | sponge package.json 13 | # Build site 14 | RUN npm install 15 | RUN VERSION=`git rev-parse --short HEAD` npm run build 16 | 17 | FROM nginx:alpine 18 | # Set non-built-time labels 19 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 20 | LABEL org.opencontainers.image.description="Standalone version of https://media.interieur.gouv.fr/deplacement-covid-19/" 21 | # Retrieve static files from build stage 22 | COPY --from=build /attestation-deplacement-derogatoire-covid-19/dist /usr/share/nginx/html 23 | -------------------------------------------------------------------------------- /deplacement-covid-19/couvre-feu-v2/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /deplacement-covid-19/latest: -------------------------------------------------------------------------------- 1 | couvre-feu-v2 -------------------------------------------------------------------------------- /deplacement-covid-19/q2-2020/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /deplacement-covid-19/q2-2020/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:alpine AS build 2 | # Install utils and chromium because why not ( postbuild and react-snap ) 3 | # See https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md#running-on-alpine 4 | RUN apk add --no-cache chromium g++ git jq make moreutils python3 5 | # Fetch sources 6 | RUN git clone --depth=1 https://github.com/LAB-MI/deplacement-covid-19.git /deplacement-covid-19 7 | # Setup environment 8 | WORKDIR /deplacement-covid-19 9 | ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true 10 | ENV PUBLIC_URL / 11 | # Yolo patch package.json to run build in docker 12 | RUN cat package.json | jq '.reactSnap.puppeteerExecutablePath="/usr/bin/chromium-browser" | .reactSnap.puppeteerArgs=["--no-sandbox", "--disable-dev-shm-usage"]' | sponge package.json 13 | # Build site 14 | RUN npm install 15 | RUN VERSION=`git rev-parse --short HEAD` npm run build 16 | 17 | FROM nginx:alpine 18 | # Set non-built-time labels 19 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 20 | LABEL org.opencontainers.image.description="Standalone version of https://media.interieur.gouv.fr/deplacement-covid-19/" 21 | # Retrieve static files from build stage 22 | COPY --from=build /deplacement-covid-19/dist /usr/share/nginx/html 23 | -------------------------------------------------------------------------------- /deplacement-covid-19/q2-2020/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /deplacement-covid-19/q4-2020/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /deplacement-covid-19/q4-2020/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:alpine AS build 2 | # Install utils and chromium because why not ( postbuild and react-snap ) 3 | # See https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md#running-on-alpine 4 | RUN apk add --no-cache chromium g++ git jq make moreutils python3 5 | # Fetch sources 6 | RUN git clone --depth=1 https://github.com/LAB-MI/attestation-deplacement-derogatoire-q4-2020.git /attestation-deplacement-derogatoire-q4-2020 7 | # Setup environment 8 | WORKDIR /attestation-deplacement-derogatoire-q4-2020 9 | ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true 10 | ENV PUBLIC_URL / 11 | # Yolo patch package.json to run build in docker 12 | RUN cat package.json | jq '.reactSnap.puppeteerExecutablePath="/usr/bin/chromium-browser" | .reactSnap.puppeteerArgs=["--no-sandbox", "--disable-dev-shm-usage"]' | sponge package.json 13 | # Build site 14 | RUN npm install 15 | RUN VERSION=`git rev-parse --short HEAD` npm run build 16 | 17 | FROM nginx:alpine 18 | # Set non-built-time labels 19 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 20 | LABEL org.opencontainers.image.description="Standalone version of https://media.interieur.gouv.fr/deplacement-covid-19/" 21 | # Retrieve static files from build stage 22 | COPY --from=build /attestation-deplacement-derogatoire-q4-2020/dist /usr/share/nginx/html 23 | -------------------------------------------------------------------------------- /deplacement-covid-19/q4-2020/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /easy-blake2s/README.md: -------------------------------------------------------------------------------- 1 | # easy-blake2s 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/easy-blake2s?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/easy-blake2s) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/easy-blake2s?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/easy-blake2s) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/easy-blake2s?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/easy-blake2s) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/easy-blake2s?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/easy-blake2s) 7 | 8 | This **Dockerfile** computes the BLAKE2s hash of an input secret. 9 | 10 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/easy-blake2s/). 11 | 12 | ## Usage 13 | 14 | ```bash 15 | $ docker run --rm badouralix/easy-blake2s "Hello, world!" 16 | 30d8777f0e178582ec8cd2fcdc18af57c828ee2f89e978df52c8e7af078bd5cf 17 | ``` 18 | 19 | ## Documentation 20 | 21 | - 22 | - 23 | 24 | ## License 25 | 26 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 27 | -------------------------------------------------------------------------------- /easy-blake2s/latest/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /easy-blake2s/latest/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:alpine 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Simple and easy-to-use BLAKE2s calculator" 6 | 7 | # Copy code over 8 | COPY easy-blake2s.py /usr/local/bin/easy-blake2s 9 | COPY entrypoint.sh / 10 | 11 | # Setup entrypoint and cmd 12 | ENTRYPOINT [ "/entrypoint.sh" ] 13 | -------------------------------------------------------------------------------- /easy-blake2s/latest/easy-blake2s.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import argparse 3 | import hashlib 4 | 5 | 6 | def main() -> None: 7 | # Parse arguments 8 | parser = argparse.ArgumentParser( 9 | description="Compute the BLAKE2s hash of an input secret." 10 | ) 11 | parser.add_argument("secret", help="input string to hash") 12 | args = parser.parse_args() 13 | 14 | # Compute hash 15 | h = hashlib.new("blake2s") 16 | h.update(args.secret.encode()) 17 | 18 | # Display result 19 | print(h.hexdigest()) 20 | 21 | 22 | if __name__ == "__main__": 23 | main() 24 | -------------------------------------------------------------------------------- /easy-blake2s/latest/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Prepend "easy-blake2s" if the first argument is not an executable 5 | if ! type -- "$1" &> /dev/null; then 6 | set -- easy-blake2s "$@" 7 | fi 8 | 9 | exec "$@" 10 | -------------------------------------------------------------------------------- /easy-blake2s/latest/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6 2 | -------------------------------------------------------------------------------- /linux-headers/5.15.49-linuxkit-pr/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /linux-headers/5.15.49-linuxkit-pr/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM docker/for-desktop-kernel:5.15.49-release-0a38e305e2756e76c65c22c4be287df5591239a2 AS docker-for-desktop-kernel 2 | FROM badouralix/toolbox:latest 3 | 4 | # The layer contains many more tarballs such as kernel-headers.tar or kernel.tar 5 | # But we only need kernel-dev.tar, which contains /usr/src/ 6 | COPY --from=docker-for-desktop-kernel / / 7 | RUN tar -xvf /kernel-dev.tar --directory=/ && \ 8 | mkdir -p /lib/modules/5.15.49-linuxkit-pr && \ 9 | ln -s /usr/src/linux-headers-5.15.49-linuxkit-pr /lib/modules/5.15.49-linuxkit-pr/build 10 | 11 | # Install bcc toolkit along with convenient tracing tools such as bpftrace and perf 12 | RUN apt-get update && \ 13 | apt-get install --assume-yes --no-install-recommends bpfcc-tools bpftrace linux-perf && \ 14 | rm -rf /var/cache/apt/* /var/lib/apt/lists/* && \ 15 | rm -rf /tmp/* /var/tmp/* 16 | 17 | # Run entrypoint script to update kernel config at runtime 18 | COPY entrypoint.sh / 19 | ENTRYPOINT [ "tini", "--", "/entrypoint.sh" ] 20 | 21 | # Redefine CMD as per https://stackoverflow.com/a/47063296 22 | CMD [ "/usr/bin/zsh" ] 23 | -------------------------------------------------------------------------------- /linux-headers/5.15.49-linuxkit-pr/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Mount debugfs so that it can be consumed by bpf tools 5 | # This requires CAP_SYS_ADMIN, see https://man7.org/linux/man-pages/man2/mount.2.html 6 | mount -t debugfs none /sys/kernel/debug 7 | 8 | # Expose kernel pointers so that bcc can detect the syscall prefix 9 | # This requires CAP_SYSLOG, see https://stackoverflow.com/a/55592796 and https://github.com/iovisor/bcc/issues/2670 10 | mount -o remount,rw /proc/sys 11 | echo 1 > /proc/sys/kernel/kptr_restrict 12 | mount -o remount,ro /proc/sys 13 | 14 | # Run the CMD as usual 15 | exec "$@" 16 | -------------------------------------------------------------------------------- /linux-headers/5.15.49-linuxkit-pr/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64 2 | -------------------------------------------------------------------------------- /linux-headers/5.15.49-linuxkit/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /linux-headers/5.15.49-linuxkit/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM docker/for-desktop-kernel:5.15.49-13422a825f833d125942948cf8a8688cef721ead AS docker-for-desktop-kernel 2 | FROM badouralix/toolbox:latest 3 | 4 | # The layer contains many more tarballs such as kernel-headers.tar or kernel.tar 5 | # But we only need kernel-dev.tar, which contains /usr/src/ 6 | COPY --from=docker-for-desktop-kernel / / 7 | RUN tar -xvf /kernel-dev.tar --directory=/ && \ 8 | mkdir -p /lib/modules/5.15.49-linuxkit && \ 9 | ln -s /usr/src/linux-headers-5.15.49-linuxkit /lib/modules/5.15.49-linuxkit/build 10 | 11 | # Install bpfcc-tools from testing instead of stable to pick up https://github.com/iovisor/bcc/pull/3391 12 | # Also install convenient tracing tools such as bpftrace and perf from testing to get recent versions 13 | RUN printf "deb http://deb.debian.org/debian testing main" > /etc/apt/sources.list.d/testing.list && \ 14 | printf "Package: *\nPin: release a=testing\nPin-Priority: 100\n" > /etc/apt/preferences.d/testing.pref && \ 15 | apt-get update && \ 16 | apt-get install --assume-yes --no-install-recommends --target-release=testing bpfcc-tools bpftrace linux-perf && \ 17 | rm -rf /var/cache/apt/* /var/lib/apt/lists/* && \ 18 | rm -rf /tmp/* /var/tmp/* 19 | 20 | # Run entrypoint script to update kernel config at runtime 21 | COPY entrypoint.sh / 22 | ENTRYPOINT [ "tini", "--", "/entrypoint.sh" ] 23 | 24 | # Redefine CMD as per https://stackoverflow.com/a/47063296 25 | CMD [ "/usr/bin/zsh" ] 26 | -------------------------------------------------------------------------------- /linux-headers/5.15.49-linuxkit/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Mount debugfs so that it can be consumed by bpf tools 5 | # This requires CAP_SYS_ADMIN, see https://man7.org/linux/man-pages/man2/mount.2.html 6 | mount -t debugfs none /sys/kernel/debug 7 | 8 | # Expose kernel pointers so that bcc can detect the syscall prefix 9 | # This requires CAP_SYSLOG, see https://stackoverflow.com/a/55592796 and https://github.com/iovisor/bcc/issues/2670 10 | mount -o remount,rw /proc/sys 11 | echo 1 > /proc/sys/kernel/kptr_restrict 12 | mount -o remount,ro /proc/sys 13 | 14 | # Run the CMD as usual 15 | exec "$@" 16 | -------------------------------------------------------------------------------- /linux-headers/5.15.49-linuxkit/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64 2 | -------------------------------------------------------------------------------- /linux-headers/README.md: -------------------------------------------------------------------------------- 1 | # linux-headers 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/linux-headers?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/linux-headers) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/linux-headers?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/linux-headers) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/linux-headers?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/linux-headers) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/linux-headers?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/linux-headers) 7 | 8 | This **Dockerfile** builds a toolbox for running eBPF programs on [Docker Desktop](https://www.docker.com/products/docker-desktop). 9 | 10 | Watch for a quick introduction to eBPF tracing. 11 | 12 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/linux-headers/). 13 | 14 | ## Usage 15 | 16 | Make sure to use the correct kernel release, because eBPF requires the exact kernel headers without BTF. 17 | 18 | ```bash 19 | export DOCKER_DESKTOP_KERNEL_RELEASE=$(docker run --rm alpine uname -r) # For instance 5.15.49-linuxkit 20 | docker run -it --rm --cap-add=SYS_ADMIN --cap-add=SYSLOG badouralix/linux-headers:$DOCKER_DESKTOP_KERNEL_RELEASE 21 | ``` 22 | 23 | ![biolatency-bpfcc](https://github.com/badouralix/dockerfiles/assets/19719047/c06f3447-5b32-4223-8ed8-774629a6c48b) 24 | 25 | ## Frequently Asked Questions 26 | 27 | ### Why `CAP_SYS_ADMIN` ? 28 | 29 | Not using `--cap-add=SYS_ADMIN` in the `docker run` command results immediately in the following error : 30 | 31 | ```text 32 | mount: /sys/kernel/debug: permission denied. 33 | ``` 34 | 35 | ### Why `CAP_SYSLOG` ? 36 | 37 | Not using `--cap-add=SYSLOG` in the `docker run` command results in the following error when running `execsnoop-bpfcc` : 38 | 39 | ```text 40 | cannot attach kprobe, probe entry may not exist 41 | Traceback (most recent call last): 42 | File "/usr/sbin/execsnoop-bpfcc", line 245, in 43 | b.attach_kprobe(event=execve_fnname, fn_name="syscall__execve") 44 | File "/usr/lib/python3/dist-packages/bcc/__init__.py", line 845, in attach_kprobe 45 | raise Exception("Failed to attach BPF program %s to kprobe %s" 46 | Exception: Failed to attach BPF program b'syscall__execve' to kprobe b'sys_execve', it's not traceable (either non-existing, inlined, or marked as "notrace") 47 | ``` 48 | 49 | See and . 50 | 51 | ### Why linux headers ? 52 | 53 | In order to build eBPF programs, compilers need the local kernel headers. With Docker Desktop, it means the kernel headers of the underlying virtual machine. These headers are available in as shown by [`dive`](https://github.com/wagoodman/dive). 54 | 55 | ```bash 56 | dive docker/for-desktop-kernel:5.15.49-13422a825f833d125942948cf8a8688cef721ead 57 | ``` 58 | 59 | ```text 60 | ┃ ● Layers ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61 | Cmp Size Command 62 | 350 MB FROM e7f5e092709a618 63 | 64 | │ Layer Details ├─────────────────────────────────────────────────────────────────────── 65 | 66 | Tags: (unavailable) 67 | Id: e7f5e092709a61807859d5669414c448ec9d7b1cfaa959782596b5eb34555cd2 68 | Digest: sha256:234146d432fbf071cb2308baf94bcd19fe266e8453ca1f628913665b178e9f5e 69 | Command: 70 | COPY /out/* / # buildkit 71 | 72 | │ Image Details ├─────────────────────────────────────────────────────────────────────── 73 | 74 | Image name: docker/for-desktop-kernel:5.15.49-13422a825f833d125942948cf8a8688cef721ead 75 | Total Image size: 350 MB 76 | Potential wasted space: 0 B 77 | Image efficiency score: 100 % 78 | 79 | Count Total Space Path 80 | 81 | │ Aggregated Layer Contents ├─────────────────────────────────────────────────────────── 82 | Permission UID:GID Size Filetree 83 | -rw-r--r-- 0:0 6.0 MB ├── System.map 84 | -rw-r--r-- 0:0 1.7 kB ├── intel-ucode-license.txt 85 | -rw-r--r-- 0:0 4.7 MB ├── intel-ucode.cpio 86 | -rw-r--r-- 0:0 9.2 MB ├── kernel 87 | -rw-r--r-- 0:0 56 B ├── kernel-builder 88 | -rw-r--r-- 0:0 84 MB ├── kernel-dev.tar 89 | -rw-r--r-- 0:0 6.5 MB ├── kernel-headers.tar 90 | -rw-r--r-- 0:0 80 B ├── kernel-source-info 91 | -rw-r--r-- 0:0 110 MB ├── kernel.tar 92 | -rw-r--r-- 0:0 129 MB └── linux.tar.xz 93 | ``` 94 | 95 | ### Why not using BTF ? 96 | 97 | Having to install linux headers is quite an overhead and heavily reduces the portability of eBPF programs. This topic is discussed in details in . An alternative is to use BTF. Unfortunately, this is not supported by the Docker Desktop kernel yet : . 98 | 99 | ## License 100 | 101 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 102 | -------------------------------------------------------------------------------- /lustre/README.md: -------------------------------------------------------------------------------- 1 | # lustre 2 | -------------------------------------------------------------------------------- /lustre/v4/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /lustre/v4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:jessie 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Docker image yolo built for computer sciences courses" 6 | 7 | # Install utils 8 | RUN apt-get update && \ 9 | apt-get install --assume-yes --no-install-recommends build-essential wget && \ 10 | rm -rf /var/cache/apt/* /var/lib/apt/lists/* && \ 11 | rm -rf /tmp/* /var/tmp/* 12 | 13 | # Install lustre 14 | ENV LUSTRE_INSTALL /opt/lustre 15 | 16 | RUN mkdir -p ${LUSTRE_INSTALL} && \ 17 | wget -qO- http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/lustre-v4/distrib/linux64/lustre-v4-III-ca-linux64.tgz | \ 18 | tar -xzf - --directory=${LUSTRE_INSTALL} --strip-components=2 && \ 19 | echo "source $LUSTRE_INSTALL/setenv.sh" >> ~/.bashrc 20 | 21 | WORKDIR /app 22 | 23 | #ENTRYPOINT [ "/bin/bash" ] 24 | CMD [ "/bin/bash" ] 25 | -------------------------------------------------------------------------------- /lustre/v4/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /nusmv/README.md: -------------------------------------------------------------------------------- 1 | # NuSMV 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/nusmv?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/nusmv) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/nusmv?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/nusmv) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/nusmv?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/nusmv) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/nusmv?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/nusmv) 7 | 8 | This **Dockerfile** builds an image with [NuSMV](http://nusmv.fbk.eu/), a 9 | symbolic model checker, with the zchaff SAT solver. 10 | 11 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/nusmv/). 12 | 13 | ## Usage 14 | 15 | Default workdir is `/input`. Thus, assuming you are currently in your project 16 | directory: 17 | 18 | ```bash 19 | docker run -it --rm -v $PWD:/input:ro badouralix/nusmv 20 | ``` 21 | 22 | See [manual](http://nusmv.fbk.eu/NuSMV/userman/v26/nusmv.pdf) to learn how to 23 | use `nusmv`. 24 | 25 | ## Tips and tricks 26 | 27 | In your shell rc dotfile, you could add an 28 | `alias nusmv='docker run -it --rm -v $PWD:/input:ro badouralix/nusmv'` so that 29 | you would just have to run : 30 | 31 | ```bash 32 | nusmv 33 | ``` 34 | 35 | ## License 36 | 37 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 38 | -------------------------------------------------------------------------------- /nusmv/latest/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /nusmv/latest/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.7 AS dl 2 | RUN mkdir nusmv 3 | RUN wget http://nusmv.fbk.eu/distrib/NuSMV-2.6.0-zchaff-linux64.tar.gz && \ 4 | tar -xvzf NuSMV-2.6.0-zchaff-linux64.tar.gz -C nusmv --strip-components=1 5 | RUN cd nusmv/bin && \ 6 | ln -s NuSMV nusmv 7 | 8 | FROM alpine:3.7 9 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 10 | LABEL org.opencontainers.image.description="Docker image with NuSMV and zchaff SAT solver" 11 | WORKDIR /input 12 | COPY entrypoint.sh / 13 | COPY --from=dl nusmv /opt/nusmv 14 | ENV PATH="/opt/nusmv/bin:${PATH}" 15 | ENTRYPOINT [ "/entrypoint.sh" ] 16 | CMD [ "nusmv" ] 17 | -------------------------------------------------------------------------------- /nusmv/latest/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (C) 2015 Appropriate Computing 4 | # Copyright (C) 2018 Ayaz BADOURALY 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 7 | # documentation files (the "Software"), to deal in the Software without restriction, including without limitation the 8 | # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit 9 | # persons to whom the Software is furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the 12 | # Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 15 | # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 16 | # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 17 | # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | # 19 | 20 | set -e 21 | 22 | # Prepend "nusmv" if the first argument is a file / directory in the current workdir or is not an executable 23 | if [ -e "$(echo $1 | sed -r 's|^(/)?|./|')" ] || ! type -- "$1" &> /dev/null; then 24 | set -- nusmv "$@" 25 | fi 26 | 27 | exec "$@" 28 | -------------------------------------------------------------------------------- /nusmv/latest/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /oh-my-via/README.md: -------------------------------------------------------------------------------- 1 | # oh-my-via 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/oh-my-via?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/oh-my-via) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/oh-my-via?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/oh-my-via) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/oh-my-via?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/oh-my-via) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/oh-my-via?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/oh-my-via) 7 | 8 | This **Dockerfile** builds an image with zsh, oh-my-zsh and [oh-my-via theme](https://github.com/badouralix/oh-my-via), for testing purpose. 9 | 10 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/oh-my-via/). 11 | 12 | ## Preview 13 | 14 | ![Oh-My-VIA theme preview](https://user-images.githubusercontent.com/19719047/85171739-db627c00-b26f-11ea-94ef-8f1f87929c47.png "Oh-My-VIA theme preview") 15 | 16 | ## Usage 17 | 18 | ```bash 19 | docker run -it --rm badouralix/oh-my-via 20 | ``` 21 | 22 | ## License 23 | 24 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 25 | -------------------------------------------------------------------------------- /oh-my-via/latest/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /oh-my-via/latest/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Docker image to try oh-my-via zsh theme out" 6 | 7 | # Install zsh and oh-my-zsh 8 | # Not removing git in order to test theme prompt 9 | RUN apk add --no-cache \ 10 | git \ 11 | tini \ 12 | zsh \ 13 | zsh-vcs \ 14 | && \ 15 | git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git /opt/oh-my-zsh && \ 16 | mkdir -p /etc/skel && touch /etc/skel/.zshrc && \ 17 | adduser -Ds /bin/zsh user 18 | 19 | # Install oh-my-via 20 | RUN git clone --depth=1 https://github.com/badouralix/oh-my-via.git /opt/oh-my-zsh/custom/themes/oh-my-via 21 | 22 | COPY zshrc /etc/zsh/zshrc 23 | 24 | # Setup entrypoint and cmd 25 | ENTRYPOINT [ "tini", "--" ] 26 | CMD [ "/bin/zsh" ] 27 | -------------------------------------------------------------------------------- /oh-my-via/latest/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6 2 | -------------------------------------------------------------------------------- /oh-my-via/latest/zshrc: -------------------------------------------------------------------------------- 1 | # zsh config file for oh-my-via 2 | 3 | # Path to your oh-my-zsh installation. 4 | export ZSH=/opt/oh-my-zsh 5 | 6 | # Set name of the theme to load. 7 | ZSH_THEME="oh-my-via/via" 8 | 9 | # Initialize oh-my-zsh. 10 | source $ZSH/oh-my-zsh.sh 11 | 12 | # vim: ft=zsh fenc=utf-8 13 | -------------------------------------------------------------------------------- /python-scrapy/README.md: -------------------------------------------------------------------------------- 1 | # python-scrapy 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/python-scrapy?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-scrapy) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/python-scrapy?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-scrapy) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/python-scrapy?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-scrapy) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/python-scrapy?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-scrapy) 7 | 8 | This repository contains a **Dockerfile** for [Scrapy](http://scrapy.org/). 9 | 10 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/python-scrapy/). 11 | 12 | ## Installation 13 | 14 | 1. Install [Docker](https://www.docker.com/). 15 | 2. After cloning, build an image from the Dockerfile : `docker build -t $USER-local/python-scrapy .` 16 | 17 | ## Usage 18 | 19 | ```bash 20 | $ docker run -it --rm badouralix/python-scrapy 21 | >>> fetch("http://quotes.toscrape.com/") 22 | >>> response.xpath("//title/text()").get() 23 | 'Quotes to Scrape' 24 | ``` 25 | 26 | See other examples at . 27 | 28 | ## License 29 | 30 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 31 | -------------------------------------------------------------------------------- /python-scrapy/latest/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /python-scrapy/latest/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:latest 2 | 3 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 4 | LABEL org.opencontainers.image.description="Docker image for scrapy" 5 | 6 | RUN python3 -m pip install --no-cache-dir --upgrade scrapy 7 | 8 | CMD [ "scrapy", "shell", "--nolog" ] 9 | -------------------------------------------------------------------------------- /python-scrapy/latest/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64 2 | -------------------------------------------------------------------------------- /python-vipaccess/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | Apache License 3 | Version 2.0, January 2004 4 | http://www.apache.org/licenses/ 5 | 6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 7 | 8 | 1. Definitions. 9 | 10 | "License" shall mean the terms and conditions for use, reproduction, 11 | and distribution as defined by Sections 1 through 9 of this document. 12 | 13 | "Licensor" shall mean the copyright owner or entity authorized by 14 | the copyright owner that is granting the License. 15 | 16 | "Legal Entity" shall mean the union of the acting entity and all 17 | other entities that control, are controlled by, or are under common 18 | control with that entity. For the purposes of this definition, 19 | "control" means (i) the power, direct or indirect, to cause the 20 | direction or management of such entity, whether by contract or 21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 22 | outstanding shares, or (iii) beneficial ownership of such entity. 23 | 24 | "You" (or "Your") shall mean an individual or Legal Entity 25 | exercising permissions granted by this License. 26 | 27 | "Source" form shall mean the preferred form for making modifications, 28 | including but not limited to software source code, documentation 29 | source, and configuration files. 30 | 31 | "Object" form shall mean any form resulting from mechanical 32 | transformation or translation of a Source form, including but 33 | not limited to compiled object code, generated documentation, 34 | and conversions to other media types. 35 | 36 | "Work" shall mean the work of authorship, whether in Source or 37 | Object form, made available under the License, as indicated by a 38 | copyright notice that is included in or attached to the work 39 | (an example is provided in the Appendix below). 40 | 41 | "Derivative Works" shall mean any work, whether in Source or Object 42 | form, that is based on (or derived from) the Work and for which the 43 | editorial revisions, annotations, elaborations, or other modifications 44 | represent, as a whole, an original work of authorship. For the purposes 45 | of this License, Derivative Works shall not include works that remain 46 | separable from, or merely link (or bind by name) to the interfaces of, 47 | the Work and Derivative Works thereof. 48 | 49 | "Contribution" shall mean any work of authorship, including 50 | the original version of the Work and any modifications or additions 51 | to that Work or Derivative Works thereof, that is intentionally 52 | submitted to Licensor for inclusion in the Work by the copyright owner 53 | or by an individual or Legal Entity authorized to submit on behalf of 54 | the copyright owner. For the purposes of this definition, "submitted" 55 | means any form of electronic, verbal, or written communication sent 56 | to the Licensor or its representatives, including but not limited to 57 | communication on electronic mailing lists, source code control systems, 58 | and issue tracking systems that are managed by, or on behalf of, the 59 | Licensor for the purpose of discussing and improving the Work, but 60 | excluding communication that is conspicuously marked or otherwise 61 | designated in writing by the copyright owner as "Not a Contribution." 62 | 63 | "Contributor" shall mean Licensor and any individual or Legal Entity 64 | on behalf of whom a Contribution has been received by Licensor and 65 | subsequently incorporated within the Work. 66 | 67 | 2. Grant of Copyright License. Subject to the terms and conditions of 68 | this License, each Contributor hereby grants to You a perpetual, 69 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 70 | copyright license to reproduce, prepare Derivative Works of, 71 | publicly display, publicly perform, sublicense, and distribute the 72 | Work and such Derivative Works in Source or Object form. 73 | 74 | 3. Grant of Patent License. Subject to the terms and conditions of 75 | this License, each Contributor hereby grants to You a perpetual, 76 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 77 | (except as stated in this section) patent license to make, have made, 78 | use, offer to sell, sell, import, and otherwise transfer the Work, 79 | where such license applies only to those patent claims licensable 80 | by such Contributor that are necessarily infringed by their 81 | Contribution(s) alone or by combination of their Contribution(s) 82 | with the Work to which such Contribution(s) was submitted. If You 83 | institute patent litigation against any entity (including a 84 | cross-claim or counterclaim in a lawsuit) alleging that the Work 85 | or a Contribution incorporated within the Work constitutes direct 86 | or contributory patent infringement, then any patent licenses 87 | granted to You under this License for that Work shall terminate 88 | as of the date such litigation is filed. 89 | 90 | 4. Redistribution. You may reproduce and distribute copies of the 91 | Work or Derivative Works thereof in any medium, with or without 92 | modifications, and in Source or Object form, provided that You 93 | meet the following conditions: 94 | 95 | (a) You must give any other recipients of the Work or 96 | Derivative Works a copy of this License; and 97 | 98 | (b) You must cause any modified files to carry prominent notices 99 | stating that You changed the files; and 100 | 101 | (c) You must retain, in the Source form of any Derivative Works 102 | that You distribute, all copyright, patent, trademark, and 103 | attribution notices from the Source form of the Work, 104 | excluding those notices that do not pertain to any part of 105 | the Derivative Works; and 106 | 107 | (d) If the Work includes a "NOTICE" text file as part of its 108 | distribution, then any Derivative Works that You distribute must 109 | include a readable copy of the attribution notices contained 110 | within such NOTICE file, excluding those notices that do not 111 | pertain to any part of the Derivative Works, in at least one 112 | of the following places: within a NOTICE text file distributed 113 | as part of the Derivative Works; within the Source form or 114 | documentation, if provided along with the Derivative Works; or, 115 | within a display generated by the Derivative Works, if and 116 | wherever such third-party notices normally appear. The contents 117 | of the NOTICE file are for informational purposes only and 118 | do not modify the License. You may add Your own attribution 119 | notices within Derivative Works that You distribute, alongside 120 | or as an addendum to the NOTICE text from the Work, provided 121 | that such additional attribution notices cannot be construed 122 | as modifying the License. 123 | 124 | You may add Your own copyright statement to Your modifications and 125 | may provide additional or different license terms and conditions 126 | for use, reproduction, or distribution of Your modifications, or 127 | for any such Derivative Works as a whole, provided Your use, 128 | reproduction, and distribution of the Work otherwise complies with 129 | the conditions stated in this License. 130 | 131 | 5. Submission of Contributions. Unless You explicitly state otherwise, 132 | any Contribution intentionally submitted for inclusion in the Work 133 | by You to the Licensor shall be under the terms and conditions of 134 | this License, without any additional terms or conditions. 135 | Notwithstanding the above, nothing herein shall supersede or modify 136 | the terms of any separate license agreement you may have executed 137 | with Licensor regarding such Contributions. 138 | 139 | 6. Trademarks. This License does not grant permission to use the trade 140 | names, trademarks, service marks, or product names of the Licensor, 141 | except as required for reasonable and customary use in describing the 142 | origin of the Work and reproducing the content of the NOTICE file. 143 | 144 | 7. Disclaimer of Warranty. Unless required by applicable law or 145 | agreed to in writing, Licensor provides the Work (and each 146 | Contributor provides its Contributions) on an "AS IS" BASIS, 147 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 148 | implied, including, without limitation, any warranties or conditions 149 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 150 | PARTICULAR PURPOSE. You are solely responsible for determining the 151 | appropriateness of using or redistributing the Work and assume any 152 | risks associated with Your exercise of permissions under this License. 153 | 154 | 8. Limitation of Liability. In no event and under no legal theory, 155 | whether in tort (including negligence), contract, or otherwise, 156 | unless required by applicable law (such as deliberate and grossly 157 | negligent acts) or agreed to in writing, shall any Contributor be 158 | liable to You for damages, including any direct, indirect, special, 159 | incidental, or consequential damages of any character arising as a 160 | result of this License or out of the use or inability to use the 161 | Work (including but not limited to damages for loss of goodwill, 162 | work stoppage, computer failure or malfunction, or any and all 163 | other commercial damages or losses), even if such Contributor 164 | has been advised of the possibility of such damages. 165 | 166 | 9. Accepting Warranty or Additional Liability. While redistributing 167 | the Work or Derivative Works thereof, You may choose to offer, 168 | and charge a fee for, acceptance of support, warranty, indemnity, 169 | or other liability obligations and/or rights consistent with this 170 | License. However, in accepting such obligations, You may act only 171 | on Your own behalf and on Your sole responsibility, not on behalf 172 | of any other Contributor, and only if You agree to indemnify, 173 | defend, and hold each Contributor harmless for any liability 174 | incurred by, or claims asserted against, such Contributor by reason 175 | of your accepting any such warranty or additional liability. 176 | 177 | END OF TERMS AND CONDITIONS 178 | 179 | APPENDIX: How to apply the Apache License to your work. 180 | 181 | To apply the Apache License to your work, attach the following 182 | boilerplate notice, with the fields enclosed by brackets "[]" 183 | replaced with your own identifying information. (Don't include 184 | the brackets!) The text should be enclosed in the appropriate 185 | comment syntax for the file format. We also recommend that a 186 | file or class name and description of purpose be included on the 187 | same "printed page" as the copyright notice for easier 188 | identification within third-party archives. 189 | 190 | Copyright 2021 Ayaz Badouraly 191 | Copyright 2021 Dan Lenski 192 | Copyright 2018 cyrozap 193 | 194 | Licensed under the Apache License, Version 2.0 (the "License"); 195 | you may not use this file except in compliance with the License. 196 | You may obtain a copy of the License at 197 | 198 | http://www.apache.org/licenses/LICENSE-2.0 199 | 200 | Unless required by applicable law or agreed to in writing, software 201 | distributed under the License is distributed on an "AS IS" BASIS, 202 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 203 | See the License for the specific language governing permissions and 204 | limitations under the License. 205 | -------------------------------------------------------------------------------- /python-vipaccess/README.md: -------------------------------------------------------------------------------- 1 | # python-vipaccess 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/python-vipaccess?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-vipaccess) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/python-vipaccess?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-vipaccess) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/python-vipaccess?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-vipaccess) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/python-vipaccess?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/python-vipaccess) 7 | 8 | This **Dockerfile** provides a one-liner for . 9 | 10 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/python-vipaccess/). 11 | 12 | ## Usage 13 | 14 | ```bash 15 | $ docker run --rm badouralix/python-vipaccess 16 | 17 | + vipaccess provision 18 | Generating request... 19 | Fetching provisioning response from Symantec server... 20 | Getting token from response... 21 | Decrypting token... 22 | Checking token against Symantec server... 23 | Credential created and saved successfully: /root/.vipaccess 24 | You will need the ID to register this credential: SYMC15836737 25 | 26 | + cat /root/.vipaccess 27 | version 1 28 | secret SN6KKH4NYLPKCFBZFJSWH4X6FCOUEKCS 29 | id SYMC15836737 30 | expiry 2024-05-14T17:18:02.276Z 31 | 32 | + vipaccess uri 33 | + qrencode -t UTF8 'otpauth://totp/Symantec:SYMC15836737?secret=SN6KKH4NYLPKCFBZFJSWH4X6FCOUEKCS&digits=6&algorithm=SHA1&image=https%3A%2F%2Fraw.githubusercontent.com%2Fdlenski%2Fpython-vipaccess%2Fmaster%2Fvipaccess.png&period=30' 34 | ``` 35 | 36 | [![Carbon QRencode](https://user-images.githubusercontent.com/19719047/118373935-9f3bb680-b5b9-11eb-9361-6e9ad15e2132.png)](https://carbon.now.sh/?bg=rgba%28171%2C184%2C195%2C0%29&t=vscode&wt=none&l=text&ds=true&dsyoff=0px&dsblur=38px&wc=true&wa=true&pv=56px&ph=56px&ln=false&fl=1&fm=JetBrains+Mono&fs=13.5px&lh=120%25&si=false&es=2x&wm=false&code=%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2580%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2584%2520%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%25E2%2596%2580%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2588%2520%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2588%2520%2520%2520%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2580%25E2%2596%2580%25E2%2596%2580%25E2%2596%2588%2520%25E2%2596%2580%25E2%2596%2580%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2588%2520%2520%2520%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2580%2520%25E2%2596%2588%25E2%2596%2580%25E2%2596%2580%2520%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%25E2%2596%2580%25E2%2596%2584%25E2%2596%2588%25E2%2596%2584%25E2%2596%2580%25E2%2596%2580%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%25E2%2596%2584%25E2%2596%2580%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2580%25E2%2596%2584%25E2%2596%2580%25E2%2596%2584%25E2%2596%2580%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2584%2520%25E2%2596%2584%2520%25E2%2596%2580%25E2%2596%2584%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2580%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%25E2%2596%2580%25E2%2596%2580%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%25E2%2596%2580%2520%25E2%2596%2580%25E2%2596%2588%2520%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%2520%2520%25E2%2596%2580%2520%25E2%2596%2580%25E2%2596%2588%25E2%2596%2588%25E2%2596%2580%25E2%2596%2580%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2580%2520%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2588%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%25E2%2596%2584%2520%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2580%25E2%2596%2584%25E2%2596%2588%25E2%2596%2580%2520%2520%25E2%2596%2580%25E2%2596%2580%25E2%2596%2588%25E2%2596%2580%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2580%2520%2520%2520%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2580%25E2%2596%2584%2520%2520%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%25E2%2596%2588%2520%25E2%2596%2584%2520%25E2%2596%2584%2520%2520%25E2%2596%2580%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2580%25E2%2596%2588%25E2%2596%2580%25E2%2596%2580%2520%25E2%2596%2580%25E2%2596%2580%25E2%2596%2588%25E2%2596%2580%25E2%2596%2580%25E2%2596%2588%25E2%2596%2580%25E2%2596%2580%2520%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%25E2%2596%2584%25E2%2596%2580%2520%25E2%2596%2588%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2580%25E2%2596%2584%2520%25E2%2596%2584%25E2%2596%2580%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2580%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2580%25E2%2596%2580%25E2%2596%2584%25E2%2596%2580%25E2%2596%2588%2520%25E2%2596%2584%2520%25E2%2596%2584%25E2%2596%2580%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2580%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%25E2%2596%2580%25E2%2596%2588%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2580%25E2%2596%2588%25E2%2596%2580%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2580%2520%2520%2520%25E2%2596%2588%25E2%2596%2580%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2580%2520%25E2%2596%2584%25E2%2596%2580%25E2%2596%2584%2520%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%25E2%2596%2580%2520%2520%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2580%2520%2520%25E2%2596%2580%25E2%2596%2580%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2580%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2584%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%2520%25E2%2596%2580%25E2%2596%2584%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2584%25E2%2596%2580%2520%25E2%2596%2580%25E2%2596%2588%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2580%25E2%2596%2580%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2580%2520%25E2%2596%2584%25E2%2596%2588%2520%2520%2520%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2580%25E2%2596%2580%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2584%25E2%2596%2580%25E2%2596%2584%25E2%2596%2580%25E2%2596%2580%25E2%2596%2584%25E2%2596%2580%25E2%2596%2580%25E2%2596%2580%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2580%25E2%2596%2580%25E2%2596%2588%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%2520%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2580%25E2%2596%2580%25E2%2596%2584%25E2%2596%2584%25E2%2596%2580%2520%25E2%2596%2580%2520%2520%25E2%2596%2584%25E2%2596%2580%25E2%2596%2584%25E2%2596%2580%25E2%2596%2588%25E2%2596%2584%25E2%2596%2580%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2580%2520%25E2%2596%2580%25E2%2596%2588%25E2%2596%2580%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2584%25E2%2596%2580%25E2%2596%2584%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2580%2520%2520%25E2%2596%2588%2520%25E2%2596%2588%2520%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2580%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2584%25E2%2596%2580%2520%2520%25E2%2596%2580%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2584%2520%2520%25E2%2596%2580%25E2%2596%2580%25E2%2596%2584%25E2%2596%2584%25E2%2596%2584%25E2%2596%2580%25E2%2596%2580%25E2%2596%2584%2520%25E2%2596%2588%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2584%25E2%2596%2588%2520%25E2%2596%2584%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%250A%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%25E2%2596%2588%2520%2520%2520%25E2%2596%2588%2520%25E2%2596%2588%2520%2520%25E2%2596%2580%25E2%2596%2588%25E2%2596%2588%25E2%2596%2580%25E2%2596%2584%2520%25E2%2596%2580%2520%25E2%2596%2580%25E2%2596%2580%25E2%2596%2588%25E2%2596%2580%25E2%2596%2580%25E2%2596%2580%25E2%2596%2588%25E2%2596%2588%25E2%2596%2580%25E2%2596%2588%2520%25E2%2596%2584%2520%2520%2520%25E2%2596%2584%2520%2520%2520%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%25E2%2596%2588%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520%2520) 37 | 38 | ## License 39 | 40 | All contents licensed under the [Apache License 2.0](https://github.com/badouralix/dockerfiles/blob/main/python-vipaccess/LICENSE). 41 | -------------------------------------------------------------------------------- /python-vipaccess/latest/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /python-vipaccess/latest/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:alpine 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="One-liner for https://github.com/dlenski/python-vipaccess" 6 | 7 | # Install utils 8 | RUN apk add --no-cache libqrencode oath-toolkit-oathtool tini 9 | 10 | # Install python-vipaccess 11 | RUN apk add --no-cache --virtual build-dependencies gcc musl-dev && \ 12 | python -m pip install --no-cache-dir --upgrade https://github.com/dlenski/python-vipaccess/archive/HEAD.zip && \ 13 | apk del build-dependencies 14 | 15 | # Copy cmd script 16 | COPY vipaccess-wrapper.sh / 17 | 18 | # Setup entrypoint and cmd 19 | ENTRYPOINT [ "tini", "--" ] 20 | CMD [ "/vipaccess-wrapper.sh" ] 21 | -------------------------------------------------------------------------------- /python-vipaccess/latest/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64 2 | -------------------------------------------------------------------------------- /python-vipaccess/latest/vipaccess-wrapper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -euxo pipefail 3 | 4 | # Provision credential 5 | vipaccess provision $@ 6 | echo 7 | 8 | # Print credential 9 | cat ~/.vipaccess 10 | echo 11 | 12 | # Print qrcode 13 | qrencode -t UTF8 $(vipaccess uri) 14 | -------------------------------------------------------------------------------- /r-languageserver/README.md: -------------------------------------------------------------------------------- 1 | # r-languageserver 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/r-languageserver?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/r-languageserver) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/r-languageserver?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/r-languageserver) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/r-languageserver?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/r-languageserver) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/r-languageserver?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/r-languageserver) 7 | 8 | This repository contains a **Dockerfile** installing [r-languageserver](https://github.com/REditorSupport/languageserver) on a handful of different distros. 9 | 10 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/r-languageserver/). 11 | 12 | - [Usage](#usage) 13 | - [Build](#build) 14 | - [Alpine](#alpine) 15 | - [Debian](#debian) 16 | - [Fedora](#fedora) 17 | - [Missing dependencies](#missing-dependencies) 18 | - [Known package dependencies](#known-package-dependencies) 19 | - [build-essentials](#build-essentials) 20 | - [libcurl](#libcurl) 21 | - [libssl](#libssl) 22 | - [libxml2](#libxml2) 23 | - [Documentation](#documentation) 24 | - [License](#license) 25 | 26 | ## Usage 27 | 28 | ```bash 29 | docker run -it --rm badouralix/r-languageserver 30 | ``` 31 | 32 | ## Build 33 | 34 | ### Alpine 35 | 36 | ```bash 37 | cd alpine 38 | dockerize r-languageserver:alpine 39 | ``` 40 | 41 | ### Debian 42 | 43 | ```bash 44 | cd debian 45 | dockerize r-languageserver:debian 46 | ``` 47 | 48 | ### Fedora 49 | 50 | ```bash 51 | cd fedora 52 | dockerize r-languageserver:fedora 53 | ``` 54 | 55 | ## Missing dependencies 56 | 57 | As installation happened on almost-raw OS, some hard dependencies were uncovered. All these log snippets come from the debian build. 58 | 59 | ### Known package dependencies 60 | 61 | Upon install command, the script outputs its dependencies 62 | 63 | ```bash 64 | $ Rscript -e 'install.packages("languageserver", repos="https://cloud.r-project.org/")' 65 | Installing package into '/usr/local/lib/R/site-library' 66 | (as 'lib' is unspecified) 67 | also installing the dependencies 'prettyunits', 'sys', 'pkgbuild', 'askpass', 'ps', 'lazyeval', 'remotes', 'ellipsis', 'evaluate', 'pkgload', 'praise', 'curl', 'mime', 'openssl', 'highr', 'markdown', 'stringr', 'yaml', 'Rcpp', 'fansi', 'utf8', 'vctrs', 'glue', 'R.methodsS3', 'R.oo', 'R.utils', 'lifecycle', 'pkgconfig', 'processx', 'assertthat', 'crayon', 'rprojroot', 'rex', 'cyclocomp', 'testthat', 'digest', 'rstudioapi', 'httr', 'knitr', 'htmltools', 'pillar', 'base64enc', 'backports', 'cli', 'magrittr', 'purrr', 'R.cache', 'rematch2', 'rlang', 'tibble', 'withr', 'xfun', 'callr', 'collections', 'desc', 'fs', 'jsonlite', 'lintr', 'R6', 'repr', 'stringi', 'styler', 'xml2', 'xmlparsedata' 68 | ``` 69 | 70 | ### build-essentials 71 | 72 | The install scripts do not retrieve binary packages, but rather compile the packages. 73 | 74 | Required compiling tools include `make`, `g++` and `gcc`. 75 | 76 | ### libcurl 77 | 78 | ```text 79 | * installing *source* package ‘curl’ ... 80 | ** package ‘curl’ successfully unpacked and MD5 sums checked 81 | ** using staged installation 82 | Using PKG_CFLAGS= 83 | Using PKG_LIBS=-lcurl 84 | ------------------------- ANTICONF ERROR --------------------------- 85 | Configuration failed because libcurl was not found. Try installing: 86 | * deb: libcurl4-openssl-dev (Debian, Ubuntu, etc) 87 | * rpm: libcurl-devel (Fedora, CentOS, RHEL) 88 | * csw: libcurl_dev (Solaris) 89 | If libcurl is already installed, check that 'pkg-config' is in your 90 | PATH and PKG_CONFIG_PATH contains a libcurl.pc file. If pkg-config 91 | is unavailable you can set INCLUDE_DIR and LIB_DIR manually via: 92 | R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...' 93 | -------------------------------------------------------------------- 94 | ERROR: configuration failed for package ‘curl’ 95 | * removing ‘/usr/lib/R/library/curl’ 96 | ``` 97 | 98 | ### libssl 99 | 100 | ```text 101 | * installing *source* package 'openssl' ... 102 | ** package 'openssl' successfully unpacked and MD5 sums checked 103 | Using PKG_CFLAGS= 104 | ------------------------- ANTICONF ERROR --------------------------- 105 | Configuration failed because openssl was not found. Try installing: 106 | * deb: libssl-dev (Debian, Ubuntu, etc) 107 | * rpm: openssl-devel (Fedora, CentOS, RHEL) 108 | * csw: libssl_dev (Solaris) 109 | * brew: openssl@1.1 (Mac OSX) 110 | If openssl is already installed, check that 'pkg-config' is in your 111 | PATH and PKG_CONFIG_PATH contains a openssl.pc file. If pkg-config 112 | is unavailable you can set INCLUDE_DIR and LIB_DIR manually via: 113 | R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...' 114 | -------------------------------------------------------------------- 115 | ERROR: configuration failed for package 'openssl' 116 | * removing '/usr/local/lib/R/site-library/openssl' 117 | ``` 118 | 119 | ### libxml2 120 | 121 | ```text 122 | * installing *source* package 'xml2' ... 123 | ** package 'xml2' successfully unpacked and MD5 sums checked 124 | Using PKG_CFLAGS= 125 | Using PKG_LIBS=-lxml2 126 | ------------------------- ANTICONF ERROR --------------------------- 127 | Configuration failed because libxml-2.0 was not found. Try installing: 128 | * deb: libxml2-dev (Debian, Ubuntu, etc) 129 | * rpm: libxml2-devel (Fedora, CentOS, RHEL) 130 | * csw: libxml2_dev (Solaris) 131 | If libxml-2.0 is already installed, check that 'pkg-config' is in your 132 | PATH and PKG_CONFIG_PATH contains a libxml-2.0.pc file. If pkg-config 133 | is unavailable you can set INCLUDE_DIR and LIB_DIR manually via: 134 | R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...' 135 | -------------------------------------------------------------------- 136 | ERROR: configuration failed for package 'xml2' 137 | * removing '/usr/local/lib/R/site-library/xml2' 138 | ``` 139 | 140 | ### Documentation 141 | 142 | This is not properly an error, but rather a warning 143 | 144 | ```text 145 | ** help 146 | *** installing help indices 147 | Warning in file.copy(file.path(R.home("doc"), "html", "R.css"), outman) : 148 | problem copying /usr/share/doc/R/html/R.css to /usr/lib/R/library/00LOCK-languageserver/00new/languageserver/html/R.css: No such file or directory 149 | Warning in file.create(f.tg) : 150 | cannot create file '/usr/share/doc/R/html/packages.html', reason 'No such file or directory' 151 | Warning in utils::make.packages.html(.Library, docdir = R.home("doc")) : 152 | cannot update HTML package index 153 | ``` 154 | 155 | ## License 156 | 157 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 158 | -------------------------------------------------------------------------------- /r-languageserver/alpine/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /r-languageserver/alpine/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Only R with its languageserver" 6 | 7 | # Install languageserver dependencies 8 | RUN apk add --no-cache \ 9 | curl-dev \ 10 | g++ \ 11 | gcc \ 12 | libxml2-dev \ 13 | linux-headers \ 14 | make \ 15 | R \ 16 | R-dev \ 17 | R-doc 18 | 19 | # Install languageserver package 20 | RUN Rscript -e 'install.packages("languageserver", repos="https://cloud.r-project.org/")' 21 | 22 | # Setup entrypoint and cmd 23 | CMD [ "R" ] 24 | -------------------------------------------------------------------------------- /r-languageserver/alpine/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /r-languageserver/debian/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /r-languageserver/debian/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Only R with its languageserver" 6 | 7 | # Install languageserver dependencies 8 | RUN apt-get update && \ 9 | apt-get install --assume-yes --no-install-recommends \ 10 | build-essential \ 11 | libcurl4-openssl-dev \ 12 | libssl-dev \ 13 | libxml2-dev \ 14 | r-base \ 15 | && \ 16 | rm -rf /var/cache/apt/* /var/lib/apt/lists/* && \ 17 | rm -rf /tmp/* /var/tmp/* 18 | 19 | # Install languageserver package 20 | RUN Rscript -e 'install.packages("languageserver", repos="https://cloud.r-project.org/")' 21 | 22 | # Setup entrypoint and cmd 23 | CMD [ "R" ] 24 | -------------------------------------------------------------------------------- /r-languageserver/debian/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /r-languageserver/fedora/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /r-languageserver/fedora/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM fedora:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Only R with its languageserver" 6 | 7 | # Install languageserver dependencies 8 | RUN dnf install --assumeyes --setopt=install_weak_deps=False \ 9 | @development-tools \ 10 | libcurl-devel \ 11 | libxml2-devel \ 12 | openssl-devel \ 13 | R \ 14 | && \ 15 | dnf clean all && \ 16 | rm -rf /tmp/* /var/cache/dnf/* /var/tmp/* 17 | 18 | # Install languageserver package 19 | RUN Rscript -e 'install.packages("languageserver", repos="https://cloud.r-project.org/")' 20 | 21 | # Setup entrypoint and cmd 22 | CMD [ "R" ] 23 | -------------------------------------------------------------------------------- /r-languageserver/fedora/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /rancher-cli/README.md: -------------------------------------------------------------------------------- 1 | # rancher-cli 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/rancher-cli?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/rancher-cli) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/rancher-cli?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/rancher-cli) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/rancher-cli?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/rancher-cli) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/rancher-cli?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/rancher-cli) 7 | 8 | This **Dockerfile** builds a docker image based on [rancher/cli](https://hub.docker.com/r/rancher/cli/), with an overridden 9 | `ENTRYPOINT` to handle custom `CMD`s. Useful when using, for instance, 10 | [gitlab-ci](https://docs.gitlab.com/ce/ci/docker/using_docker_images.html#how-docker-integration-works), or any other CI/CD tool 11 | providing job scripts to be run inside the container. 12 | 13 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/rancher-cli/). 14 | 15 | ## Usage 16 | 17 | ### CLI usage 18 | 19 | Assuming envvars `RANCHER_URL`, `RANCHER_ACCESS_KEY` and `RANCHER_SECRET_KEY` are set: 20 | 21 | ```bash 22 | docker run --rm -e RANCHER_URL=$RANCHER_URL -e RANCHER_ACCESS_KEY=$RANCHER_ACCESS_KEY -e RANCHER_SECRET_KEY=$RANCHER_SECRET_KEY badouralix/rancher-cli rancher ps 23 | ``` 24 | 25 | If rancher command is not an alpine command, `rancher` can be omitted within the previous command. 26 | 27 | ### GitLab-CI 28 | 29 | Assuming secret variables `RANCHER_URL`, `RANCHER_ACCESS_KEY` and `RANCHER_SECRET_KEY` are set in your CI/CD pipelines settings, 30 | image can be use as follow, to restart a service for instance: 31 | 32 | ```yaml 33 | image: badouralix/rancher-cli 34 | script: 35 | - rancher --wait restart stack/service 36 | ``` 37 | 38 | ## Warning 39 | 40 | When using it in command line, this image is known to be buggy with several built-in commands such as `help`... The safest way to 41 | use this image is to always append `rancher` before any rancher-cli command, thus to prevent any error. 42 | 43 | ## License 44 | 45 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 46 | -------------------------------------------------------------------------------- /rancher-cli/latest/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /rancher-cli/latest/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/cli2:latest 2 | 3 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 4 | LABEL org.opencontainers.image.description="rancher-cli for gitlab-ci" 5 | 6 | COPY entrypoint.sh / 7 | 8 | ENTRYPOINT [ "/entrypoint.sh" ] 9 | -------------------------------------------------------------------------------- /rancher-cli/latest/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Prepend "rancher" if the first argument is not an executable 5 | if ! type -- "$1" &> /dev/null; then 6 | set -- rancher "$@" 7 | fi 8 | 9 | exec "$@" 10 | -------------------------------------------------------------------------------- /rancher-cli/latest/hooks/pre_build: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Set bash safeguard 4 | set -euo pipefail 5 | 6 | # Set custom envvars 7 | CUSTOM_TAG=`docker run --rm badouralix/curl-jq sh -c "curl -s https://hub.docker.com/v2/repositories/rancher/cli2/tags/ | jq -r '.results[1].name'"` 8 | 9 | # Print custom envvars 10 | echo "Fetched custom tag $CUSTOM_TAG" 11 | echo "::set-output name=extra_tags::$IMAGE_NAME:$CUSTOM_TAG" 12 | 13 | # Update base image with current tag 14 | sed -Ei "s,^FROM (.*):.*$,FROM \1:$CUSTOM_TAG," Dockerfile 15 | 16 | # Print patched dockerfile 17 | echo "::group::Patched dockerfile" 18 | cat Dockerfile 19 | echo "::endgroup::" 20 | -------------------------------------------------------------------------------- /rancher-cli/latest/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.10/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.10/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/cli:v0.6.10 2 | 3 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 4 | LABEL org.opencontainers.image.description="rancher-cli for gitlab-ci" 5 | 6 | COPY entrypoint.sh / 7 | 8 | ENTRYPOINT [ "/entrypoint.sh" ] 9 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.10/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Prepend "rancher" if the first argument is not an executable 5 | if ! type -- "$1" &> /dev/null; then 6 | set -- rancher "$@" 7 | fi 8 | 9 | exec "$@" 10 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.10/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.11/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.11/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/cli:v0.6.11 2 | 3 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 4 | LABEL org.opencontainers.image.description="rancher-cli for gitlab-ci" 5 | 6 | COPY entrypoint.sh / 7 | 8 | ENTRYPOINT [ "/entrypoint.sh" ] 9 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.11/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Prepend "rancher" if the first argument is not an executable 5 | if ! type -- "$1" &> /dev/null; then 6 | set -- rancher "$@" 7 | fi 8 | 9 | exec "$@" 10 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.11/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.12/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.12/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/cli:v0.6.12 2 | 3 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 4 | LABEL org.opencontainers.image.description="rancher-cli for gitlab-ci" 5 | 6 | COPY entrypoint.sh / 7 | 8 | ENTRYPOINT [ "/entrypoint.sh" ] 9 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.12/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Prepend "rancher" if the first argument is not an executable 5 | if ! type -- "$1" &> /dev/null; then 6 | set -- rancher "$@" 7 | fi 8 | 9 | exec "$@" 10 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.12/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.13/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.13/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/cli:v0.6.13 2 | 3 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 4 | LABEL org.opencontainers.image.description="rancher-cli for gitlab-ci" 5 | 6 | COPY entrypoint.sh / 7 | 8 | ENTRYPOINT [ "/entrypoint.sh" ] 9 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.13/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Prepend "rancher" if the first argument is not an executable 5 | if ! type -- "$1" &> /dev/null; then 6 | set -- rancher "$@" 7 | fi 8 | 9 | exec "$@" 10 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.13/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.14/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.14/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/cli:v0.6.14 2 | 3 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 4 | LABEL org.opencontainers.image.description="rancher-cli for gitlab-ci" 5 | 6 | COPY entrypoint.sh / 7 | 8 | ENTRYPOINT [ "/entrypoint.sh" ] 9 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.14/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Prepend "rancher" if the first argument is not an executable 5 | if ! type -- "$1" &> /dev/null; then 6 | set -- rancher "$@" 7 | fi 8 | 9 | exec "$@" 10 | -------------------------------------------------------------------------------- /rancher-cli/v0.6.14/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /rancher-cli/v2.0.6/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /rancher-cli/v2.0.6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/cli2:v2.0.6 2 | 3 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 4 | LABEL org.opencontainers.image.description="rancher-cli for gitlab-ci" 5 | 6 | COPY entrypoint.sh / 7 | 8 | ENTRYPOINT [ "/entrypoint.sh" ] 9 | -------------------------------------------------------------------------------- /rancher-cli/v2.0.6/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Prepend "rancher" if the first argument is not an executable 5 | if ! type -- "$1" &> /dev/null; then 6 | set -- rancher "$@" 7 | fi 8 | 9 | exec "$@" 10 | -------------------------------------------------------------------------------- /rancher-cli/v2.0.6/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /rancher-cli/v2.2.0/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /rancher-cli/v2.2.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/cli2:v2.2.0 2 | 3 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 4 | LABEL org.opencontainers.image.description="rancher-cli for gitlab-ci" 5 | 6 | COPY entrypoint.sh / 7 | 8 | ENTRYPOINT [ "/entrypoint.sh" ] 9 | -------------------------------------------------------------------------------- /rancher-cli/v2.2.0/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Prepend "rancher" if the first argument is not an executable 5 | if ! type -- "$1" &> /dev/null; then 6 | set -- rancher "$@" 7 | fi 8 | 9 | exec "$@" 10 | -------------------------------------------------------------------------------- /rancher-cli/v2.2.0/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /rancher-cli/v2.3.2/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /rancher-cli/v2.3.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/cli2:v2.3.2 2 | 3 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 4 | LABEL org.opencontainers.image.description="rancher-cli for gitlab-ci" 5 | 6 | COPY entrypoint.sh / 7 | 8 | ENTRYPOINT [ "/entrypoint.sh" ] 9 | -------------------------------------------------------------------------------- /rancher-cli/v2.3.2/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Prepend "rancher" if the first argument is not an executable 5 | if ! type -- "$1" &> /dev/null; then 6 | set -- rancher "$@" 7 | fi 8 | 9 | exec "$@" 10 | -------------------------------------------------------------------------------- /rancher-cli/v2.3.2/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /rancher-cli/v2.4.9/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /rancher-cli/v2.4.9/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM rancher/cli2:v2.4.9 2 | 3 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 4 | LABEL org.opencontainers.image.description="rancher-cli for gitlab-ci" 5 | 6 | COPY entrypoint.sh / 7 | 8 | ENTRYPOINT [ "/entrypoint.sh" ] 9 | -------------------------------------------------------------------------------- /rancher-cli/v2.4.9/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | 4 | # Prepend "rancher" if the first argument is not an executable 5 | if ! type -- "$1" &> /dev/null; then 6 | set -- rancher "$@" 7 | fi 8 | 9 | exec "$@" 10 | -------------------------------------------------------------------------------- /rancher-cli/v2.4.9/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64 2 | -------------------------------------------------------------------------------- /toolbox/README.md: -------------------------------------------------------------------------------- 1 | # toolbox 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/toolbox?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/toolbox) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/toolbox?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/toolbox) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/toolbox?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/toolbox) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/toolbox?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/toolbox) 7 | 8 | This **Dockerfile** builds an image with a bunch of useful tools. 9 | 10 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/toolbox/). 11 | 12 | Embedded tools mostly come from . 13 | 14 | ## Usage 15 | 16 | ```bash 17 | docker run -it --rm badouralix/toolbox 18 | ``` 19 | 20 | ## Content 21 | 22 | This toolbox contains the following deb packages : 23 | 24 | ```text 25 | apt-file 26 | ca-certificates 27 | colordiff 28 | conntrack 29 | curl 30 | dnsutils 31 | file 32 | fzf 33 | git 34 | gnupg 35 | htop 36 | iperf3 37 | iproute2 38 | iptables 39 | less 40 | locate 41 | lsof 42 | man-db 43 | most 44 | mtr-tiny 45 | net-tools 46 | netcat-openbsd 47 | nmap 48 | parallel 49 | psmisc 50 | pv 51 | python3 52 | ripgrep 53 | socat 54 | ssh 55 | strace 56 | stress 57 | stress-ng 58 | sysstat 59 | tcpdump 60 | tini 61 | tldr 62 | traceroute 63 | tree 64 | vim 65 | wget 66 | zsh 67 | ``` 68 | 69 | ## License 70 | 71 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 72 | -------------------------------------------------------------------------------- /toolbox/latest/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /toolbox/latest/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM debian:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Personal collection of useful linux tools" 6 | 7 | # Install a bunch of useful packages 8 | RUN apt-get update && \ 9 | apt-get install --assume-yes --no-install-recommends \ 10 | apt-file \ 11 | ca-certificates \ 12 | colordiff \ 13 | conntrack \ 14 | curl \ 15 | dnsutils \ 16 | file \ 17 | fzf \ 18 | git \ 19 | gnupg \ 20 | htop \ 21 | iperf3 \ 22 | iproute2 \ 23 | iptables \ 24 | less \ 25 | locate \ 26 | lsof \ 27 | man-db \ 28 | most \ 29 | mtr-tiny \ 30 | net-tools \ 31 | netcat-openbsd \ 32 | nmap \ 33 | parallel \ 34 | psmisc \ 35 | pv \ 36 | python3 \ 37 | ripgrep \ 38 | socat \ 39 | ssh \ 40 | strace \ 41 | stress \ 42 | stress-ng \ 43 | sysstat \ 44 | tcpdump \ 45 | tini \ 46 | tldr \ 47 | traceroute \ 48 | tree \ 49 | vim \ 50 | wget \ 51 | zsh \ 52 | && \ 53 | rm -rf /var/cache/apt/* /var/lib/apt/lists/* && \ 54 | rm -rf /tmp/* /var/tmp/* 55 | 56 | # Install oh-my-zsh with custom plugins and oh-my-via theme 57 | RUN git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git /opt/oh-my-zsh && \ 58 | git clone --depth=1 https://github.com/Aloxaf/fzf-tab /opt/oh-my-zsh/custom/plugins/fzf-tab && \ 59 | git clone --depth=1 https://github.com/zsh-users/zsh-autosuggestions.git /opt/oh-my-zsh/custom/plugins/zsh-autosuggestions && \ 60 | git clone --depth=1 https://github.com/zsh-users/zsh-completions.git /opt/oh-my-zsh/custom/plugins/zsh-completions && \ 61 | git clone --depth=1 https://github.com/zsh-users/zsh-syntax-highlighting.git /opt/oh-my-zsh/custom/plugins/zsh-syntax-highlighting && \ 62 | git clone --depth=1 https://github.com/badouralix/oh-my-via.git /opt/oh-my-zsh/custom/themes/oh-my-via 63 | 64 | # Upload config files 65 | COPY zshrc /root/.zshrc 66 | 67 | # Override entrypoint and default command 68 | ENTRYPOINT [ "tini", "--" ] 69 | CMD [ "/usr/bin/zsh" ] 70 | -------------------------------------------------------------------------------- /toolbox/latest/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/386,linux/arm/v7 2 | -------------------------------------------------------------------------------- /toolbox/latest/zshrc: -------------------------------------------------------------------------------- 1 | # Setup environment 2 | export LS_COLORS='no=00:fi=00:di=01;32:ln=36:pi=33:so=01;35:bd=01;33:cd=01;33:ex=01;31' 3 | export PAGER=most 4 | export ZSH=/opt/oh-my-zsh 5 | 6 | # Override default term when the container is allocated a pseudo-tty 7 | [ "$TERM" = "xterm" ] && export TERM=xterm-256color 8 | 9 | # Configure oh-my-zsh 10 | COMPLETION_WAITING_DOTS="true" 11 | DISABLE_AUTO_UPDATE="true" 12 | ENABLE_CORRECTION="true" 13 | HYPHEN_INSENSITIVE="true" 14 | ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&*' 15 | ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) 16 | ZSH_THEME="oh-my-via/via" 17 | 18 | # Configure zsh plugins 19 | plugins=(fzf-tab git zsh-autosuggestions zsh-completions zsh-syntax-highlighting) 20 | 21 | # Source external scripts 22 | source $ZSH/oh-my-zsh.sh 23 | source /usr/share/doc/fzf/examples/key-bindings.zsh 24 | 25 | # Enable autocompletion 26 | zstyle ':completion:*' rehash true 27 | zstyle ':fzf-tab:*' disabled-on files 28 | zstyle ':fzf-tab:complete:-command-:*' fzf-flags --height $(( LINES / 3 * 2 )) 29 | zstyle ':fzf-tab:complete:-command-:*' fzf-preview '(out=$(MANWIDTH=$FZF_PREVIEW_COLUMNS man "$word") 2>/dev/null && echo $out) || (out=$(which "$word") && echo $out) || echo "${(P)word}"' 30 | zstyle ':fzf-tab:complete:(-command-|-parameter-|-brace-parameter-|export|unset|expand):*' fzf-preview 'echo ${(P)word}' 31 | unsetopt list_ambiguous 32 | autoload -U compinit && compinit -u 33 | 34 | # Create hook functions 35 | chpwd() ls 36 | preexec() date 37 | 38 | # Create aliases 39 | alias checkip='curl -s http://checkip.amazonaws.com/' 40 | alias df='df -hT' 41 | alias diff='colordiff -u' 42 | alias du='du -h' 43 | alias free='free -h' 44 | alias less='less -M' 45 | alias mkfile='touch' 46 | alias python='python3' 47 | alias rgrep='rg' 48 | alias rm='rm -v' 49 | 50 | # vim: ft=zsh fenc=utf-8 51 | -------------------------------------------------------------------------------- /zunit/README.md: -------------------------------------------------------------------------------- 1 | # zunit 2 | 3 | [![Docker Pulls](https://img.shields.io/docker/pulls/badouralix/zunit?label=pulls&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/zunit) 4 | [![Docker Stars](https://img.shields.io/docker/stars/badouralix/zunit?label=stars&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/zunit) 5 | [![Docker Image Version (latest by date)](https://img.shields.io/docker/v/badouralix/zunit?logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/zunit) 6 | [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/badouralix/zunit?label=size&logo=docker&logoColor=white)](https://hub.docker.com/r/badouralix/zunit) 7 | 8 | ⚠️⚠️⚠️ **ZUnit is still in progress, this image is built upon branch `master`.** ⚠️⚠️⚠️ 9 | 10 | ⚠️⚠️⚠️ **Images built on specific releases may arrive soon** ⚠️⚠️⚠️ 11 | 12 | This **Dockerfile** builds an image with zsh and [zunit framework](https://github.com/molovo/zunit). 13 | 14 | See the repo on [Docker Hub](https://hub.docker.com/r/badouralix/zunit/). 15 | 16 | ## Usage 17 | 18 | Default workdir is `/app`. 19 | Thus, assuming you are currently in your project directory: 20 | 21 | ```bash 22 | docker run -t --rm -v $PWD:/app:ro badouralix/zunit 23 | ``` 24 | 25 | See [README](https://github.com/molovo/zunit/blob/master/README.md) to learn how to use `zunit`. 26 | 27 | ## Tips and tricks 28 | 29 | In your shell rc dotfile, you could add an `alias zunit='docker run -t --rm -v $PWD:/app:ro badouralix/zunit'` 30 | so that you would just have to run : 31 | 32 | ```bash 33 | zunit 34 | ``` 35 | 36 | ## License 37 | 38 | Unless expressly stated otherwise, all contents licensed under the [MIT License](https://github.com/badouralix/dockerfiles/blob/main/LICENSE). 39 | -------------------------------------------------------------------------------- /zunit/latest/.dockerignore: -------------------------------------------------------------------------------- 1 | hooks/ 2 | platforms.txt 3 | -------------------------------------------------------------------------------- /zunit/latest/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:latest 2 | 3 | # Set non-built-time labels 4 | LABEL org.opencontainers.image.authors="Ayaz BADOURALY" 5 | LABEL org.opencontainers.image.description="Docker image for ZUnit, a powerful unit testing framework for ZSH" 6 | 7 | # Set default WORKDIR to /app 8 | WORKDIR /app 9 | 10 | # Install zsh and utils 11 | RUN apk add --no-cache ncurses zsh 12 | 13 | # Install zunit and dependencies 14 | RUN apk add --no-cache --virtual build-dependencies \ 15 | git && \ 16 | git clone --depth=1 https://github.com/molovo/color /tmp/color && \ 17 | cp /tmp/color/color.zsh /usr/local/bin/color && \ 18 | chmod +x /usr/local/bin/color && \ 19 | git clone --depth=1 https://github.com/molovo/revolver /tmp/revolver && \ 20 | cp /tmp/revolver/revolver /usr/local/bin/revolver && \ 21 | chmod +x /usr/local/bin/revolver && \ 22 | git clone --depth=1 https://github.com/molovo/zunit /tmp/zunit && \ 23 | cd /tmp/zunit && ./build.zsh && \ 24 | cp /tmp/zunit/zunit /usr/local/bin/zunit && \ 25 | chmod +x /usr/local/bin/zunit && \ 26 | apk del build-dependencies && \ 27 | rm -rf /tmp/* /var/tmp/* 28 | 29 | # Set default ENTRYPOINT and CMD 30 | COPY entrypoint.sh / 31 | 32 | ENTRYPOINT [ "/entrypoint.sh" ] 33 | CMD [ "zunit" ] 34 | -------------------------------------------------------------------------------- /zunit/latest/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (C) 2015 Appropriate Computing 4 | # Copyright (C) 2016 Ayaz BADOURALY 5 | # 6 | # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 7 | # documentation files (the "Software"), to deal in the Software without restriction, including without limitation the 8 | # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit 9 | # persons to whom the Software is furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the 12 | # Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE 15 | # WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 16 | # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR 17 | # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | # 19 | 20 | set -e 21 | 22 | # Prepend "zunit" if the first argument is a file / directory in the current workdir or is not an executable 23 | if [ -e "$(echo $1 | sed -r 's|^(/)?|./|')" ] || ! type -- "$1" &> /dev/null; then 24 | set -- zunit "$@" 25 | fi 26 | 27 | exec "$@" 28 | 29 | -------------------------------------------------------------------------------- /zunit/latest/platforms.txt: -------------------------------------------------------------------------------- 1 | linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6 2 | --------------------------------------------------------------------------------