diff options
author | Chris Evich <cevich@redhat.com> | 2019-04-02 11:38:14 -0400 |
---|---|---|
committer | Chris Evich <cevich@redhat.com> | 2019-04-03 09:57:20 -0400 |
commit | 599714d9f2b5d0715a5cda0275fbea64d581bbc6 (patch) | |
tree | 6f569aea9d7922ff8a1d64079b2d96ebc695b062 /Dockerfile.fedora | |
parent | ad467ba16e5f78a159c730ea005830cfa075de15 (diff) | |
download | podman-599714d9f2b5d0715a5cda0275fbea64d581bbc6.tar.gz podman-599714d9f2b5d0715a5cda0275fbea64d581bbc6.tar.bz2 podman-599714d9f2b5d0715a5cda0275fbea64d581bbc6.zip |
Cirrus: Support special-case modes of testing
Previously libpod CI was fairly straight-forward, run unit and
integration tests in a standard set of 3 VMs. Off on the side was a
single special case of running tests as an ordinary user. There is a
desire to stop using the PAPR system to support testing inside of a
container.
Since having two special cases potentially invites more
down the road, make provisions to handle them more gracefully. This
commit introduces an environment variable: ``$SPECIALMODE``. It's
value has the following meanings within the CI scripts:
Mode 'none': Nothing special, business as usual (default)
Mode 'rootless': Rootless testing
Mode 'in_podman': Build container, run integration tests in it.
This will make adding additional special-cases later easier, as well as
extending the special cases in a Matrix across multiple OS's.
Signed-off-by: Chris Evich <cevich@redhat.com>
Diffstat (limited to 'Dockerfile.fedora')
-rw-r--r-- | Dockerfile.fedora | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/Dockerfile.fedora b/Dockerfile.fedora new file mode 100644 index 000000000..e38e2e056 --- /dev/null +++ b/Dockerfile.fedora @@ -0,0 +1,96 @@ +FROM registry.fedoraproject.org/fedora:28 + +RUN dnf -y install btrfs-progs-devel \ + atomic-registries \ + bzip2 \ + conmon \ + device-mapper-devel \ + findutils \ + git \ + glib2-devel \ + glibc-static \ + gnupg \ + golang \ + golang-github-cpuguy83-go-md2man \ + gpgme-devel \ + libassuan-devel \ + libseccomp-devel \ + libselinux-devel \ + containers-common \ + runc \ + make \ + ostree-devel \ + lsof \ + which\ + golang-github-cpuguy83-go-md2man \ + procps-ng \ + nmap-ncat \ + xz \ + slirp4netns \ + container-selinux \ + iptables && dnf clean all + +# Install CNI plugins +ENV CNI_COMMIT 412b6d31280682bb4fab4446f113c22ff1886554 +RUN set -x \ + && export GOPATH="$(mktemp -d)" \ + && git clone https://github.com/containernetworking/plugins.git "$GOPATH/src/github.com/containernetworking/plugins" \ + && cd "$GOPATH/src/github.com/containernetworking/plugins" \ + && git checkout -q "$CNI_COMMIT" \ + && ./build.sh \ + && mkdir -p /usr/libexec/cni \ + && cp bin/* /usr/libexec/cni \ + && rm -rf "$GOPATH" + +# Install buildah +RUN set -x \ + && export GOPATH=/go \ + && git clone https://github.com/containers/buildah "$GOPATH/src/github.com/containers/buildah" \ + && cd "$GOPATH/src/github.com/containers/buildah" \ + && make \ + && make install + +# Install ginkgo +RUN set -x \ + && export GOPATH=/go \ + && go get -u github.com/onsi/ginkgo/ginkgo \ + && install -D -m 755 "$GOPATH"/bin/ginkgo /usr/bin/ + +# Install gomega +RUN set -x \ + && export GOPATH=/go \ + && go get github.com/onsi/gomega/... + +# Install easyjson +RUN set -x \ + && export GOPATH=/go \ + && go get -u github.com/mailru/easyjson/... \ + && install -D -m 755 "$GOPATH"/bin/easyjson /usr/bin/ + +# Install conmon +ENV CRIO_COMMIT 7a283c391abb7bd25086a8ff91dbb36ebdd24466 +RUN set -x \ + && export GOPATH="$(mktemp -d)" \ + && git clone https://github.com/kubernetes-sigs/cri-o.git "$GOPATH/src/github.com/kubernetes-sigs/cri-o.git" \ + && cd "$GOPATH/src/github.com/kubernetes-sigs/cri-o.git" \ + && git fetch origin --tags \ + && git checkout -q "$CRIO_COMMIT" \ + && make \ + && make bin/conmon \ + && install -D -m 755 bin/conmon /usr/libexec/podman/conmon \ + && rm -rf "$GOPATH" + +# 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 + +# Install varlink stuff +RUN pip3 install varlink + +WORKDIR /go/src/github.com/containers/libpod |