An open API service indexing awesome lists of open source software.

https://github.com/wayofdev/docker-build-deps

Docker image with build dependencies for WoD projects
https://github.com/wayofdev/docker-build-deps

actionlint build dependencies docker shellcheck wait4x wayofdev

Last synced: 3 months ago
JSON representation

Docker image with build dependencies for WoD projects

Awesome Lists containing this project

README

        








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](https://goss.rocks/) — Quick and Easy server testing / validation
* [dgoss](https://github.com/aelsabbahy/goss/tree/master/extras/dgoss) — Wrapper around goss to perform tests on docker containers
* [dcgoss](https://github.com/aelsabbahy/goss/blob/master/extras/dcgoss/dcgoss) — Uses docker-compose file instead of passing docker run args
* [wait4x](https://github.com/atkrad/wait4x) — Allows to wait for a port or a service to enter the requested state
* [mkcert](https://github.com/FiloSottile/mkcert) — A simple zero-config tool to make locally trusted development certificates with any names
* [shellcheck](https://www.shellcheck.net) — Finds bugs in your shell scripts
* [actionlint](https://github.com/rhysd/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](https://github.com/wayofdev/docker-build-deps/blob/master/src/group_vars/all.yml)

**Default package configuration:**

```yaml
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:

```bash
$ 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](https://github.com/aelsabbahy/goss/blob/master/extras/dgoss/README.md)


### → Building locally

Generating distributable Dockerfiles from yaml source code:

```bash
$ make generate
```


Building default image:

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

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

```bash
$ 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:

```bash
$ make test
```


### → Code quality tools

Run **yamllint** to validate all yaml files in project:

```bash
$ make lint
```

Run hadolint to validate created Dockerfiles:

```bash
$ make hadolint
```


## 🤝 License

[![Licence](https://img.shields.io/github/license/wayofdev/docker-build-deps?style=for-the-badge&color=blue)](./LICENSE)


## 🙆🏼‍♂️ Author Information

This repository was created in **2022** by [lotyp / wayofdev](https://github.com/wayofdev).


## 🫡 Contributors