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 + diff --git a/CHANGELOG.md b/CHANGELOG.md index c6c19de..1c7392c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,22 @@ 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 + +* 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 * 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 diff --git a/Dockerfile b/Dockerfile index 466030f..231f23c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,4 @@ -# 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 @@ -9,16 +6,14 @@ 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 +# 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 index e99a4af..3249979 --- 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)" }