summaryrefslogtreecommitdiff
path: root/Dockerfile.fedora
diff options
context:
space:
mode:
authorChris Evich <cevich@redhat.com>2019-04-02 11:38:14 -0400
committerChris Evich <cevich@redhat.com>2019-04-03 09:57:20 -0400
commit599714d9f2b5d0715a5cda0275fbea64d581bbc6 (patch)
tree6f569aea9d7922ff8a1d64079b2d96ebc695b062 /Dockerfile.fedora
parentad467ba16e5f78a159c730ea005830cfa075de15 (diff)
downloadpodman-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.fedora96
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