Skip to content

Docker image with build dependencies for WoD projects

License

Notifications You must be signed in to change notification settings

wayofdev/docker-build-deps

Repository files navigation




Build Status Latest Version Docker Pulls Software License Commits since latest release

Docker Image: Build Dependencies

Repository contains docker image with build dependencies for WOD projects.

→ Installed and enabled apk packages in this image:

  • net-tools — Linux networking base tools
  • gettext (envsubst) — The envsubst searches the input for pattern $VARIABLE or ${VARIABLE}. Then, it replaces the pattern with the value of the corresponding bash variable
  • git
  • bash
  • unzip
  • nano
  • ca-certificates
  • tzdata
  • curl
  • bash
  • make
  • tar
  • bzip2

→ Installed tools:

  • goss — Quick and Easy server testing / validation
  • dgoss — Wrapper around goss to perform tests on docker containers
  • dcgoss — Uses docker-compose file instead of passing docker run args
  • wait4x — Allows to wait for a port or a service to enter the requested state
  • mkcert — A simple zero-config tool to make locally trusted development certificates with any names
  • shellcheck — Finds bugs in your shell scripts
  • actionlint — Static checker for GitHub Actions workflow files

If you like/use this repository, please consider starring it. Thanks!


🔧 Configuration

Ansible is used to generate distribution files. To add or remove packages, or configure project, see group_vars/all.yml

Default package configuration:

docker_version: "20.10.21"

system_packages:
  - git
  - bash
  - unzip
  - nano
  - ca-certificates
  - tzdata
  - curl
  - bash
  - gettext
  - make
  - tar
  - gzip
  - bzip2
  - gnupg
  - net-tools

system_user: wod
system_group: wod
system_user_uid: 1000
system_user_gid: 1000
system_shell: bash

wait4x_version: "2"
goss_version: "0.3.20"
mkcert_version: "1.4.4"
actionlint_version: "1.6.22"
shellcheck_version: "0.8.0"

To generate dist files use ansible command:

$ make generate

⚙️ Development

To install dependencies and start development you can check contents of our Makefile

→ Requirments

For testing purposes we use goss and dgoss, follow installation instructions on their official README


→ Building locally

Generating distributable Dockerfiles from yaml source code:

$ make generate

Building default image:

$ git clone [email protected]:wayofdev/docker-build-deps.git
$ make build

To build image, test it and then clean temporary files run:

$ make

🧪 Testing

You can check Makefile to get full list of commands for local testing. For testing, you can use these commands to test whole role or separate tasks:

Testing default image:

$ make test

→ Code quality tools

Run yamllint to validate all yaml files in project:

$ make lint

Run hadolint to validate created Dockerfiles:

$ make hadolint

🤝 License

Licence


🙆🏼‍♂️ Author Information

This repository was created in 2022 by lotyp / wayofdev.


🫡 Contributors