Merge pull request #1804 from cevich/lint_verify_image

Standardized container image for gofmt and lint
This commit is contained in:
OpenShift Merge Robot
2018-11-13 09:03:10 -08:00
committed by GitHub
4 changed files with 109 additions and 0 deletions

69
contrib/gate/Dockerfile Normal file
View File

@ -0,0 +1,69 @@
FROM fedora:28
RUN dnf -y install \
atomic-registries \
btrfs-progs-devel \
buildah \
bzip2 \
conmon \
container-selinux \
containernetworking-cni \
containernetworking-cni-devel \
device-mapper-devel \
findutils \
git \
glib2-devel \
glibc-static \
gnupg \
golang \
gpgme-devel \
iptables \
libassuan-devel \
libseccomp-devel \
libselinux-devel \
lsof \
make \
nmap-ncat \
ostree-devel \
procps-ng \
python \
python3-dateutil \
python3-psutil \
python3-pytoml \
python3-varlink \
skopeo-containers \
slirp4netns \
rsync \
which \
xz \
&& dnf clean all
ENV GOPATH="/go" \
PATH="/go/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" \
SRCPATH="/usr/src/libpod" \
GOSRC="/go/src/github.com/containers/libpod"
# Only needed for installing build-time dependencies
COPY / $GOSRC
WORKDIR $GOSRC
# Install dependencies
RUN set -x && \
go get -u github.com/mailru/easyjson/... && \
install -D -m 755 "$GOPATH"/bin/easyjson /usr/bin/ && \
make install.tools && \
install -D -m 755 $GOSRC/contrib/gate/entrypoint.sh /usr/local/bin/ && \
rm -rf "$GOSRC"
# Install cni config
#RUN make install.cni
RUN mkdir -p /etc/cni/net.d/
COPY cni/87-podman-bridge.conflist /etc/cni/net.d/87-podman-bridge.conflist
# Make sure we have some policy for pulling images
RUN mkdir -p /etc/containers
COPY test/policy.json /etc/containers/policy.json
COPY test/redhat_sigstore.yaml /etc/containers/registries.d/registry.access.redhat.com.yaml
VOLUME ["/usr/src/libpod"]
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

4
contrib/gate/README.md Normal file
View File

@ -0,0 +1,4 @@
![PODMAN logo](../../logo/podman-logo-source.svg)
A standard container image for `gofmt` and lint-checking the libpod
repository. The [contributors guide contains the documentation for usage.](https://github.com/containers/libpod/blob/master/CONTRIBUTING.md#go-format-and-lint)

15
contrib/gate/entrypoint.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/bash
[[ -n "$SRCPATH" ]] || \
( echo "ERROR: \$SRCPATH must be non-empty" && exit 1 )
[[ -n "$GOSRC" ]] || \
( echo "ERROR: \$GOSRC must be non-empty" && exit 2 )
[[ -r "${SRCPATH}/contrib/gate/Dockerfile" ]] || \
( echo "ERROR: Expecting libpod repository root at $SRCPATH" && exit 3 )
# Working from a copy avoids needing to perturb the actual source files
mkdir -p "$GOSRC"
/usr/bin/rsync --recursive --links --quiet --safe-links \
--perms --times "${SRCPATH}/" "${GOSRC}/"
cd "$GOSRC"
make "$@"