Skip to content

Commit

Permalink
docs: update and enhance README.md
Browse files Browse the repository at this point in the history
- Change style of CodeFactor badge in README.md
- Update base images in the Dockerfiles section of README.md
- Add docker build command queue in the README.md
- Revise the GNU GENERAL PUBLIC LICENSE disclosure in README.md
- Extend the justification for choosing GPL license in README.md
- Emphasize image size and security in the README.md

Signed-off-by: 陳鈞 <[email protected]>
  • Loading branch information
jim60105 committed May 18, 2024
1 parent ae75c83 commit 3f942e0
Showing 1 changed file with 26 additions and 24 deletions.
50 changes: 26 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# docker-fc2-live-dl

[![CodeFactor](https://www.codefactor.io/repository/github/jim60105/docker-fc2-live-dl/badge?style=for-the-badge)](https://www.codefactor.io/repository/github/jim60105/docker-fc2-live-dl) [![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/jim60105/docker-fc2-live-dl/scan.yml?label=IMAGE%20SCAN&style=for-the-badge)](https://github.com/jim60105/docker-fc2-live-dl/actions/workflows/scan.yml)
[![CodeFactor](https://www.codefactor.io/repository/github/jim60105/docker-fc2-live-dl/badge)](https://www.codefactor.io/repository/github/jim60105/docker-fc2-live-dl) [![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/jim60105/docker-fc2-live-dl/scan.yml?label=IMAGE%20SCAN)](https://github.com/jim60105/docker-fc2-live-dl/actions/workflows/scan.yml)

This is the docker image for [HoloArchivists/fc2-live-dl: Tool to download FC2 live streams](https://github.com/HoloArchivists/fc2-live-dl) from the community.

Expand Down Expand Up @@ -39,15 +39,15 @@ Please check the [HoloArchivists/fc2-live-dl README](https://github.com/HoloArch
This repository contains three Dockerfiles for building Docker images based on different base images:

| Dockerfile | Base Image |
| ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| [Dockerfile](Dockerfile) | [Python official image 3.11-alpine](https://hub.docker.com/_/python/) |
|------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|
| [Dockerfile](Dockerfile) | [Python official image 3-alpine](https://hub.docker.com/_/python/) |
| [ubi.Dockerfile](ubi.Dockerfile) | [Red Hat Universal Base Image 9 Minimal](https://catalog.redhat.com/software/containers/ubi9/ubi-minimal/615bd9b4075b022acc111bf5) |
| [distroless.Dockerfile](distroless.Dockerfile) | [distroless-python 3.11-debian12](https://github.com/alexdmoss/distroless-python) |
| [distroless.Dockerfile](distroless.Dockerfile) | [distroless-python 3.12-debian12](https://github.com/alexdmoss/distroless-python) |

And, built with the following code version of fc2-live-dl: main branch, v2.2.0, v2.1.3.

| Code Version | Alpine | UBI | Distroless |
| --------------------------------------------------------------------------- | ------------------------- | ------------ | ------------------- |
|-----------------------------------------------------------------------------|---------------------------|--------------|---------------------|
| [main branch](https://github.com/HoloArchivists/fc2-live-dl) | `alpine`, `latest` | `ubi` | `distroless` |
| [v2.2.0](https://github.com/HoloArchivists/fc2-live-dl/releases/tag/v2.2.0) | `v2.2.0`, `v2.2.0-alpine` | `v2.2.0-ubi` | `v2.2.0-distroless` |
| [v2.1.3](https://github.com/HoloArchivists/fc2-live-dl/releases/tag/v2.1.3) | `v2.1.3`, `v2.1.3-alpine` | `v2.1.3-ubi` | `v2.1.3-distroless` |
Expand All @@ -61,23 +61,31 @@ And, built with the following code version of fc2-live-dl: main branch, v2.2.0,
> Clone the Git repository recursively to include submodules:
> `git clone --recursive https://github.com/jim60105/docker-fc2-live-dl.git`
```bash
docker build -f Dockerfile -t fc2-live-dl .
```

> [!NOTE]
> If you are using an earlier version of the docker client, it is necessary to [enable the BuildKit mode](https://docs.docker.com/build/buildkit/#getting-started) when building the image. This is because I used the `COPY --link` feature which enhances the build performance and was introduced in Buildx v0.8.
> With the Docker Engine 23.0 and Docker Desktop 4.19, Buildx has become the default build client. So you won't have to worry about this when using the latest version.
For example, if you want to build the alpine image:

```bash
docker build -f Dockerfile -t fc2-live-dl:alpine .
```

## LICENSE

> [!NOTE]
> The main program, [HoloArchivists/fc2-live-dl](https://github.com/HoloArchivists/fc2-live-dl), is distributed under [MIT](https://github.com/HoloArchivists/fc2-live-dl/blob/main/LICENSE).
> Please consult their repository for access to the source code and licenses.
> The following is the license for the Dockerfiles and CI workflows in this repository.
<img src="https://github.com/jim60105/docker-fc2-live-dl/assets/16995691/102ae35d-cd95-4b38-8dbd-e1bfe6a1696f" alt="open graph" width="300" />

[GNU GENERAL PUBLIC LICENSE Version 3](LICENSE)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.

> [!CAUTION]
> A GPLv3 licensed Dockerfile means that you _**MUST**_ **distribute the source code with the same license**, if you
>
Expand All @@ -89,22 +97,16 @@ docker build -f Dockerfile -t fc2-live-dl:alpine .
>
> Please consult the [LICENSE](LICENSE) for more details.
<img src="https://github.com/jim60105/docker-fc2-live-dl/assets/16995691/102ae35d-cd95-4b38-8dbd-e1bfe6a1696f" alt="open graph" width="300" />

[GNU GENERAL PUBLIC LICENSE Version 3](LICENSE)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.

## 💭

The main reason I chose not to contribute my work back to the original repository is because I wanted to use the GPL license. I am a advocate for open source and have a great enthusiasm for the GPL license. However, it is important to acknowledge that the GPL license has more restrictions compared to the MIT license, and individuals have valid reasons for not choosing it. I fully respect their decision. Since it is not recommended to have multiple licenses in the same repository, I will distribute my work separately.
The main reason I chose not to contribute my work back to the original repository is because I wanted to use the GPL license.

I am a strong supporter of open source and have a great passion for the GPL license. However, it's important to recognize that the GPL license has more restrictions compared to the MIT license, and people have valid reasons for not choosing it. I completely respect their decision. As it's not advisable to have multiple licenses in the same repository, I will distribute my work separately.

Now, you may be wondering why you should choose my image instead of the original one.

I have specifically created these images for fun... oops, focusing on security. I have dedicated years to play with containers. As a result, I have developed certain techniques that allow me to build more robust containers. To assess the difference, you can use tools like [Snyk](https://snyk.io/), [Trivy](https://github.com/aquasecurity/trivy), or even [Docker Scout](https://www.docker.com/products/docker-scout/) to scan the image. While I don't claim that my image is the MOST secure, I am confident that it is MORE security.
I have specifically created these images for fun... oops, focusing on **size, security, following best practices and industry policies.**

To assess the difference, you can pull the images and comparing the size and use scanning tools like [Snyk](https://snyk.io/), [Trivy](https://github.com/aquasecurity/trivy), or [Docker Scout](https://www.docker.com/products/docker-scout/) to scan the images. While I don't claim that my image is the MOST secure, I am confident that it is MORE secure.

I do not intend to criticize anyone who create "Oh, it works" containers. Developing this skill requires learning, and I simply enjoy these toys more than others. I hope you can finds their values.
I have spent years playing with containers and developing techniques to build more robust ones. I don't mean to criticize those who create "Oh, it works" containers. Developing this skill takes time, and I just happen to enjoy these toys more than others. I hope you can see their value.

0 comments on commit 3f942e0

Please sign in to comment.