summaryrefslogtreecommitdiff
path: root/contrib/gate/Dockerfile
blob: 54bd2cbde5f4da025f886dba2a65caa767bbf252 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
FROM fedora:31
RUN dnf -y install \
      btrfs-progs-devel \
      bzip2 \
      container-selinux \
      containernetworking-cni \
      device-mapper-devel \
      findutils \
      git \
      glib2-devel \
      glibc-static \
      golang \
      gpgme-devel \
      iptables \
      libassuan-devel \
      libseccomp-devel \
      libselinux-devel \
      lsof \
      make \
      nmap-ncat \
      procps-ng \
      python \
      python3-dateutil \
      python3-psutil \
      python3-pytoml \
      python3-pyyaml \
      python3-varlink \
      rsync \
      slirp4netns \
      unzip \
      which \
      xz \
      zip \
      && dnf clean all

ENV GOPATH="/var/tmp/go" \
    GOBIN="/var/tmp/go/bin" \
    PATH="/var/tmp/go/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" \
    SRCPATH="/usr/src/libpod" \
    GOSRC="/var/tmp/go/src/github.com/containers/libpod"

# Only needed for installing build-time dependencies, then will be removed
COPY / $GOSRC

# Install dependencies
RUN set -x && \
    mkdir -p "$GOBIN" && \
    mkdir -p /etc/cni/net.d && \
    mkdir -p /etc/containers && \
    install -D -m 755 $GOSRC/contrib/gate/entrypoint.sh /usr/local/bin/ && \
    python3 -m pip install pre-commit

# Install cni config
COPY cni/87-podman-bridge.conflist /etc/cni/net.d/87-podman-bridge.conflist
# Make sure we have some policy for pulling images
COPY test/policy.json /etc/containers/policy.json
COPY test/redhat_sigstore.yaml /etc/containers/registries.d/registry.access.redhat.com.yaml

WORKDIR "$GOSRC"
RUN make install.tools && \
    cd / && \
    rm -rf "$GOSRC" && \
    mkdir -p "$GOSRC"
VOLUME ["/usr/src/libpod"]
# This entrypoint will synchronize the above volume ($SRCPATH) to $GOSRC before
# executing make.  This ensures the original source remains prestine and is never
# modified by any lint/validation checks.
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]