github.com/swiftstack/proxyfs@v0.0.0-20201223034610-5434d919416e/test/container/Dockerfile (about) 1 FROM centos:7.4.1708 2 3 # Yum install. Trying to do as much as possible at once. 4 # Here's an explanation of why we need to install each package: 5 ## Install Golang 6 # - gcc 7 # - wget 8 ## Install Python pip 9 # - epel-release 10 # - python-pip 11 ## Setup ProxyFS build environment 12 # - sudo 13 # - json-c-devel 14 # - fuse 15 ## Setup Samba 16 # - git \ 17 # - gcc-c++-4.8.5-16.el7_4.2 \ 18 # - python-devel-2.7.5-58.el7 \ 19 # - gnutls-devel-3.3.26-9.el7 \ 20 # - libacl-devel-2.2.51-12.el7 \ 21 # - openldap-devel-2.4.44-5.el7 \ 22 # - samba-4.6.2-12.el7_4 \ 23 # - samba-client-4.6.2-12.el7_4 \ 24 # - cifs-utils-6.2-10.el7 \ 25 ## Build liberasurecode and pyeclib from source 26 # - gcc 27 # - make 28 # - autoconf 29 # - automake 30 # - libtool 31 32 RUN yum-config-manager --disable CentOS-Base 33 RUN yum-config-manager --disable CentOS-CR 34 RUN yum-config-manager --disable CentOS-Debuginfo 35 RUN yum-config-manager --disable CentOS-fasttrack 36 RUN yum-config-manager --disable CentOS-Media 37 RUN yum-config-manager --disable CentOS-Sources 38 RUN yum-config-manager --disable CentOS-Vault 39 40 RUN rm -rf \ 41 /etc/yum.repos.d/CentOS-Base.repo \ 42 /etc/yum.repos.d/CentOS-CR.repo \ 43 /etc/yum.repos.d/CentOS-Debuginfo.repo \ 44 /etc/yum.repos.d/CentOS-fasttrack.repo \ 45 /etc/yum.repos.d/CentOS-Media.repo \ 46 /etc/yum.repos.d/CentOS-Sources.repo \ 47 /etc/yum.repos.d/CentOS-Vault.repo 48 49 RUN yum-config-manager --add-repo http://vault.centos.org/centos/7.4.1708/os/x86_64/ 50 RUN yum-config-manager --add-repo http://vault.centos.org/centos/7.4.1708/updates/x86_64/ 51 RUN yum-config-manager --add-repo http://vault.centos.org/centos/7.4.1708/extras/x86_64/ 52 RUN yum-config-manager --add-repo http://vault.centos.org/centos/7.4.1708/centosplus/x86_64/ 53 RUN yum-config-manager --enable vault.centos.org_centos_7.4.1708_os_x86_64_ 54 RUN yum-config-manager --enable vault.centos.org_centos_7.4.1708_updates_x86_64_ 55 RUN yum-config-manager --enable vault.centos.org_centos_7.4.1708_extras_x86_64_ 56 RUN yum-config-manager --enable vault.centos.org_centos_7.4.1708_centosplus_x86_64_ 57 58 RUN yum clean all 59 RUN rm -rf /var/cache/yum 60 61 RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 62 63 # goveralls needs a more recent version of git than what comes with CentOS 7 64 RUN yum -y remove git* 65 RUN yum -y install https://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.8-1.x86_64.rpm 66 RUN yum -y install git 67 RUN git --version 68 69 RUN yum -y --disableexcludes=all install gcc 70 RUN yum -y install \ 71 wget \ 72 epel-release \ 73 sudo \ 74 json-c-devel \ 75 fuse \ 76 gcc-c++-4.8.5-16.el7_4.2 \ 77 python-devel-2.7.5-58.el7 \ 78 gnutls-devel-3.3.26-9.el7 \ 79 libacl-devel-2.2.51-12.el7 \ 80 openldap-devel-2.4.44-5.el7 \ 81 samba-4.6.2-12.el7_4 \ 82 samba-client-4.6.2-12.el7_4 \ 83 cifs-utils-6.2-10.el7 \ 84 gcc-4.8.5-16.el7_4.2 \ 85 make-3.82-23.el7 \ 86 autoconf-2.69-11.el7 \ 87 automake-1.13.4-3.el7 \ 88 libtool-2.4.2-22.el7_3 89 RUN yum -y install python-pip 90 91 # Get a py3 runtime 92 RUN yum -y install centos-release-scl 93 RUN yum -y install rh-python36 && \ 94 ln -s /opt/rh/rh-python36/root/bin/python3.6 /bin/python3.6 && \ 95 ln -s /bin/python3.6 /bin/python3 && \ 96 ln -s /opt/rh/rh-python36/root/usr/include /opt/rh/rh-python36/root/include 97 98 # Pip install. Trying to do as much as possible at once. 99 # Here's an explanation of why we need to install each package: 100 ## Setup ProxyFS build environment 101 # - requests 102 ## Install Python tox 103 # - tox 104 RUN pip install --upgrade pip 105 RUN pip install requests tox==3.5.3 106 107 # Install Golang 108 ENV GOLANG_TARFILE_NAME=go1.15.5.linux-amd64.tar.gz 109 RUN cd /tmp && wget -q https://dl.google.com/go/${GOLANG_TARFILE_NAME} 110 RUN tar -C /usr/local -xf /tmp/${GOLANG_TARFILE_NAME} 111 RUN rm -rf /tmp/${GOLANG_TARFILE_NAME} 112 ENV PATH=$PATH:/usr/local/go/bin 113 114 # Setup ProxyFS build environment 115 ENV GOPATH=/gopathroot 116 ENV PATH=$PATH:$GOPATH/bin 117 RUN echo "user_allow_other" >> /etc/fuse.conf 118 119 RUN git clone https://github.com/openstack/liberasurecode.git 120 RUN cd /liberasurecode && ./autogen.sh && ./configure && make && sudo make install && sed -i '1s/^/\/usr\/local\/lib\n/' /etc/ld.so.conf && ldconfig 121 122 RUN git clone https://github.com/openstack/pyeclib.git 123 RUN cd /pyeclib && pip install -e . && pip install -r test-requirements.txt 124 125 RUN go get github.com/ory/go-acc github.com/mattn/goveralls 126 127 CMD ["/bin/bash", "/gopathroot/src/github.com/swiftstack/ProxyFS/test/container/launch.sh"]