All Projects → ekino → docker-buildbox

ekino / docker-buildbox

Licence: other
Docker images for GitLab CI's jobs

Programming Languages

Dockerfile
14818 projects
python
139335 projects - #7 most used programming language
shell
77523 projects
PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to docker-buildbox

Build Templates
A library of build templates.
Stars: ✭ 184 (+240.74%)
Mutual labels:  build
Rushstack
Monorepo for tools developed by the Rush Stack community
Stars: ✭ 3,465 (+6316.67%)
Mutual labels:  build
xconfigure
High-Performance configuration patterns and recipes.
Stars: ✭ 42 (-22.22%)
Mutual labels:  build
Earthly
Repeatable builds
Stars: ✭ 5,805 (+10650%)
Mutual labels:  build
Php Sdk Binary Tools
Tool kit for building PHP under Windows
Stars: ✭ 212 (+292.59%)
Mutual labels:  build
Build Harness
🤖Collection of Makefiles to facilitate building Golang projects, Dockerfiles, Helm charts, and more
Stars: ✭ 236 (+337.04%)
Mutual labels:  build
Nake
Magic script-based C# task runner for .NET Core
Stars: ✭ 183 (+238.89%)
Mutual labels:  build
tdlib-binaries
prebuilt TDLib binaries
Stars: ✭ 26 (-51.85%)
Mutual labels:  build
Atom Latex
Compile LaTeX or knitr documents from within Atom
Stars: ✭ 219 (+305.56%)
Mutual labels:  build
Autoarchive
一个基于Jenkins的iOS/Android自动构建系统,它实现了最大程度的自动化,让你的iOS自动打包,Android自动打包流程变得更加高效。此项目包含了各种实现细节的讲解说明,你能够使用它解决大多数跟客户端构建/分发相关的问题,并将这种能力进行开放,提高研发效率。
Stars: ✭ 248 (+359.26%)
Mutual labels:  build
Examples Electron
Examples for Electron applications.
Stars: ✭ 193 (+257.41%)
Mutual labels:  build
Psdepend
PowerShell Dependency Handler
Stars: ✭ 212 (+292.59%)
Mutual labels:  build
Open Electronics
📚 💻 Great Resources for Electronics Enthusiasts
Stars: ✭ 242 (+348.15%)
Mutual labels:  build
Mbt
The most flexible build tool for monorepo
Stars: ✭ 184 (+240.74%)
Mutual labels:  build
rab
Rusty Armor Builds - Monster Hunter Rise Armor Set Creation Tool
Stars: ✭ 29 (-46.3%)
Mutual labels:  build
Build
B2 makes it easy to build C++ projects, everywhere.
Stars: ✭ 182 (+237.04%)
Mutual labels:  build
Stack Images
Heroku stack images
Stars: ✭ 234 (+333.33%)
Mutual labels:  build
abs
PKGBUILDs for the Arch User Repository
Stars: ✭ 38 (-29.63%)
Mutual labels:  build
buildozer
🚜 Build tool which simplify your buildprocess. Built with Gulp.js 🥤
Stars: ✭ 22 (-59.26%)
Mutual labels:  build
Bazel Watcher
Tools for building Bazel targets when source files change.
Stars: ✭ 245 (+353.7%)
Mutual labels:  build

Build Status

BuildBox

The repository provides a complete set of build tools for web developers. These images MUST NOT be used in production. The targeted usage of those images is GitlabCI.

Versions

Please review the CHANGELOG.md file for versions per tag.

Testing

Each box is tested and built using GitHub Actions.

CI workflow:

  • PR: only images with modified files are built.
  • Merge to master: only images with modified files are built and pushed to the docker registry with the tag latest-IMAGE
  • TAG: all images are built and pushed to the docker registry
  • Nightly: all images are built and pushed to the docker registry with the tag nightly-IMAGE

Local testing

To contribute you will need python3.6 and pipenv (installed by pip install pipenv).

  • Clone the repo
  • Create your pipenv environnement

    pipenv install

  • Load your pipenv

    pipenv shell

  • Run the script

    python image_builder.py build --image image --version version

$ python image_builder.py build --help
Usage: image_builder.py build [OPTIONS]

Options:
  --image TEXT    image to build
  --version TEXT  image version
  -d, --debug     debug
  --help          Show this message and exit.
$ python image_builder.py build --image java --version 11
> Building: ekino/ci-java:11-latest
Build succesfull
> Testing ekino/ci-java:11-latest
Tests successful

Contribution

Commit message

Please follow the following pattern in your commit message <type>(<optional scope>): <description>. <type> can be either chore (for a routine/maintenance task), fix (for a bugfix) or feat (for a new feature).

Adding your image to the build box

Create a directory named after your image and corresponding Dockerfile in it. Then create a config.yml in the same directory according to this schema:

versions: # List all the available versions
  "1.0": # The version of your image. This must not change often, so try using major version if possible, or else minor.
    test_config:
      volume: ... # docker volume if needed, format: localdir:/path/to/mount
      cmd: [...]  # shell commands run to be sure tools are well installed
    build_args: [...]  # If ARG are defined in Dockerfile

Do not forget to add an entry in .github/dependabot.yml too if you want it to update your image.

If you want multiple Dockerfiles for one image, you need to use subdirectories named after the version + create one dependabot rule / subdirectory for dependabot to update your base docker images correctly.

When using subdirectories, keep in mind that the build context still is the main image folder, so COPY/ADD your files from here.

Volume mounting for test configuration only need the directory name as full local path is build by the script.

Available images

Ansible

https://hub.docker.com/r/ekino/ci-ansible/tags

Contains Ansible and Python 3.x

AWS

https://hub.docker.com/r/ekino/ci-aws/tags

Contains AWS Cli, AWS EB Cli, and jq.

AWSLinux systemd

https://hub.docker.com/r/ekino/ci-awslnx-systemd/tags

Amazon Linux based image containing Systemd for service management in docker container.

Azure

https://hub.docker.com/r/ekino/ci-azure/tags

Contains Azure Cli and Terraform.

Bitcoind

https://hub.docker.com/r/ekino/ci-bitcoind/tags

Contains Bitcoin core (bitcoind & bitcoin-cli).

Chrome

https://hub.docker.com/r/ekino/ci-chrome/tags

Contains Chromium browser and the latest Node LTS.

Cloudsploit

https://hub.docker.com/r/ekino/ci-cloudsploit/tags

Contains Aquasecurity's Cloudsploit Scanner.

DIND

https://hub.docker.com/r/ekino/ci-dind/tags

Adds AWS Cli & Azure Cli to GitLab's dind image (to run docker in a GitLab runner).

Use case:

# .gitlab-ci.yml
test:
  image: ekino/ci-dind:latest
  services:
    - ekino/ci-dind:latest
  variables:
    DOCKER_TLS_CERTDIR: ""
    DOCKER_DRIVER: overlay2
    DOCKER_HOST: "tcp://ekino__ci-dind:2375"
  script:
    - docker ...

Golang

https://hub.docker.com/r/ekino/ci-golang/tags

Based upon official Golang image, contains AWS Cli, Gitleaks, GolangCI-Lint, go-mod-upgrade, go-swagger, go-mock, goimports, migrate, modd, rsync and testfixtures.

Java

https://hub.docker.com/r/ekino/ci-java/tags

Contains AWS Cli, Maven, Graphviz, jq, psql and Java.

Node

https://hub.docker.com/r/ekino/ci-node/tags

Contains node (installed in the NODE_VERSION env var value) and AWS Cli.

Percy

https://hub.docker.com/r/ekino/ci-percy/tags

Contains Percy CLI, used to manage https://percy.io/

PHP

https://hub.docker.com/r/ekino/ci-php/tags

Contains PHP (installed from official alpine in the PHP_VERSION env var value) within Blackfire, Composer, PHP CS Fixer, Security Checker and AWS Cli.

About Blackfire, please read the official documentation to install the agent https://blackfire.io/docs/integrations/docker, then you should be able to profile a PHP script like this:

docker exec -it -e BLACKFIRE_CLIENT_ID -e BLACKFIRE_CLIENT_TOKEN my-php-container blackfire run bin/console app:foo:bar

Platform.sh CLI

https://hub.docker.com/r/ekino/ci-platformsh/tags

Based on python 3.6 alpine image, contains php7 and platform.sh CLI.

Python

https://hub.docker.com/r/ekino/ci-python/tags

Contains Python with PIP and PIPENV.

Pynode

https://hub.docker.com/r/ekino/ci-pynode/tags

Based on Python image, contains Nodejs 14. Used for serverless and CDK use cases, with tools installed in a package-lock.json file.

SonarQube Scanner

https://hub.docker.com/r/ekino/ci-sonar/tags

Contains SonarQube Scanner.

Terraform

https://hub.docker.com/r/ekino/ci-terraform/tags

Contains Terraform, Terragrunt, and CLIs for Google Cloud, Azure, AWS.

TezosQA

https://hub.docker.com/r/ekino/ci-tezosqa/tags

Contains ligo, SmartPy, and Pytezos.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].