github.com/rohankumardubey/proxyfs@v0.0.0-20210108201508-653efa9ab00e/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://centos7.iuscommunity.org/ius-release.rpm
    66  RUN yum -y install  git2u-all
    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.13.6.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"]