From 2e529990551b45a30c06ca0b9e436e27c7770bb9 Mon Sep 17 00:00:00 2001 From: Eric Hough Date: Tue, 15 May 2018 11:51:13 -0700 Subject: [PATCH 1/6] adding code of conduct --- .github/code-of-conduct.md | 74 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .github/code-of-conduct.md diff --git a/.github/code-of-conduct.md b/.github/code-of-conduct.md new file mode 100644 index 0000000..2cfafb1 --- /dev/null +++ b/.github/code-of-conduct.md @@ -0,0 +1,74 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +education, socio-economic status, nationality, personal appearance, race, +religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at [`eric@tubepress.com`](mailto:eric@tubepress.com). All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html) + +[homepage]: https://www.contributor-covenant.org + From 4bfc85a3477b9b26279fab909c5ec47f5e39ccbe Mon Sep 17 00:00:00 2001 From: Eric Hough Date: Tue, 15 May 2018 12:04:15 -0700 Subject: [PATCH 2/6] cleanup Dockerfile: put ARGs before FROM, setup ENTRYPOINT at end --- Dockerfile | 21 +++++++++------------ entrypoint.sh | 0 2 files changed, 9 insertions(+), 12 deletions(-) mode change 100644 => 100755 entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 466030f..1445e18 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,24 +1,19 @@ -# switch back to Alpine when/if https://bugs.alpinelinux.org/issues/8470 is fixed -# FROM alpine:latest -# RUN apk --update upgrade && apk add bash nfs-utils && rm -rf /var/cache/apk/* - +# Alpine can only be used if/when this bug is fixed: https://bugs.alpinelinux.org/issues/8470 ARG BUILD_FROM=debian:stretch-slim -FROM $BUILD_FROM - # https://github.com/ehough/docker-nfs-server/pull/3#issuecomment-387880692 ARG DEBIAN_FRONTEND=noninteractive -# kmod is required for lsmod -# libcap2-bin is required for checking capabilities +FROM $BUILD_FROM + +# kmod is needed for lsmod, and libcap2-bin is needed for confirming Linux capabilities RUN apt-get update && \ apt-get install -y --no-install-recommends nfs-kernel-server kmod libcap2-bin && \ apt-get clean && \ rm -rf /var/lib/apt/lists && \ - rm /etc/idmapd.conf # remove the default idmapd.conf - -ADD ./entrypoint.sh /usr/local/bin -RUN chmod +x /usr/local/bin/entrypoint.sh + \ + # remove the default idmapd.conf + rm -v /etc/idmapd.conf # http://wiki.linux-nfs.org/wiki/index.php/Nfsv4_configuration RUN mkdir -p /var/lib/nfs/rpc_pipefs && \ @@ -28,4 +23,6 @@ RUN mkdir -p /var/lib/nfs/rpc_pipefs && \ EXPOSE 2049 +# setup entrypoint +COPY ./entrypoint.sh /usr/local/bin ENTRYPOINT ["/usr/local/bin/entrypoint.sh"] diff --git a/entrypoint.sh b/entrypoint.sh old mode 100644 new mode 100755 From 893ac21914255d7964578d031c8d39d9c05a46e9 Mon Sep 17 00:00:00 2001 From: Eric Hough Date: Tue, 15 May 2018 12:28:50 -0700 Subject: [PATCH 3/6] update CHANGELOG with latest changes --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c6c19de..67c404c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [Unreleased] +### Added + +* Base image is now configurable via `BUILD_FROM` build argument. e.g. `docker build --build-arg BUILD_FROM=ubuntu erichough/nfs-server` ([#3](https://github.com/ehough/docker-nfs-server/pull/3)) + +### Changed + +* Base image is now `debian:stretch-slim` (was `debian:stable`) + ### Fixed * `rpc.idmapd` was started even when NFS version 4 was not in use From f1eebf36dab9db79a2cac3ade3aa7e03b7182911 Mon Sep 17 00:00:00 2001 From: Aleksandr Danshyn Date: Wed, 6 Jun 2018 18:12:37 +0300 Subject: [PATCH 4/6] Fixed the kernel module assertion to consider builtin modules --- entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh b/entrypoint.sh index e99a4af..3249979 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -226,7 +226,7 @@ assert_kernel_mod() { log "checking for presence of kernel module: $moduleName" - lsmod | grep -Eq "^$moduleName\\s+" + lsmod | grep -Eq "^$moduleName\\s+" || [ -d "/sys/module/$moduleName" ] exit_on_failure "$moduleName module is not loaded on the Docker host's kernel (try: modprobe $moduleName)" } From 0d9e4a5ae390a1ce1e6f88cd44329f893b7fa609 Mon Sep 17 00:00:00 2001 From: Eric Hough Date: Wed, 6 Jun 2018 22:53:58 -0700 Subject: [PATCH 5/6] document PR #4 in CHANGELOG --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67c404c..1c7392c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [1.1.0] - 2018-06-06 ### Added @@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. * `rpc.idmapd` was started even when NFS version 4 was not in use * removed default `/etc/idmapd.conf` from the image to prevent unintended start of `rpc.idmapd` * `NFS_VERSION=3` resulted in `rpc.nfsd` still offering version 4 +* Fixed detection of built-in kernel modules ([#4](https://github.com/ehough/docker-nfs-server/pull/4)) ## [1.0.0] - 2018-02-05 Initial release. \ No newline at end of file From e71d97ad2ff9431db674038e14592dd887776452 Mon Sep 17 00:00:00 2001 From: Eric Hough Date: Wed, 6 Jun 2018 22:56:17 -0700 Subject: [PATCH 6/6] DEBIAN_FRONTEND needs to be declared after FROM in order to have any effect --- Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1445e18..231f23c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,11 @@ # Alpine can only be used if/when this bug is fixed: https://bugs.alpinelinux.org/issues/8470 ARG BUILD_FROM=debian:stretch-slim +FROM $BUILD_FROM + # https://github.com/ehough/docker-nfs-server/pull/3#issuecomment-387880692 ARG DEBIAN_FRONTEND=noninteractive -FROM $BUILD_FROM - # kmod is needed for lsmod, and libcap2-bin is needed for confirming Linux capabilities RUN apt-get update && \ apt-get install -y --no-install-recommends nfs-kernel-server kmod libcap2-bin && \