github.com/yasker/longhorn-engine@v0.0.0-20160621014712-6ed6cfca0729/Dockerfile.dapper (about)

     1  FROM ubuntu:16.04
     2  
     3  # Setup environment
     4  ENV PATH /go/bin:$PATH
     5  ENV DAPPER_DOCKER_SOCKET true
     6  ENV DAPPER_ENV TAG REPO
     7  ENV DAPPER_OUTPUT bin
     8  ENV DAPPER_RUN_ARGS --privileged
     9  ENV DAPPER_RUN_ARGS --tmpfs /go/src/github.com/rancher/longhorn/integration/.venv:exec --tmpfs /go/src/github.com/rancher/longhorn/integration/.tox:exec
    10  ENV DAPPER_SOURCE /go/src/github.com/rancher/longhorn
    11  ENV TRASH_CACHE ${DAPPER_SOURCE}/.trash-cache
    12  WORKDIR ${DAPPER_SOURCE}
    13  
    14  # Install packages
    15  RUN apt-get update && \
    16      apt-get install -y \
    17          cmake \
    18          curl \
    19          git \
    20          libglib2.0-dev \
    21          libkmod-dev \
    22          libnl-genl-3-dev \
    23          linux-libc-dev \
    24          pkg-config \
    25          psmisc \
    26          python-tox \
    27          qemu-utils
    28  
    29  # Install Go 1.6
    30  RUN curl -o go.tar.gz https://storage.googleapis.com/golang/go1.6.2.linux-amd64.tar.gz
    31  RUN echo 'e40c36ae71756198478624ed1bb4ce17597b3c19d243f3f0899bb5740d56212a  go.tar.gz' | sha256sum -c && \
    32      tar xzf go.tar.gz -C /usr/local && \
    33      rm go.tar.gz
    34  RUN mkdir -p /go
    35  ENV PATH $PATH:/usr/local/go/bin
    36  ENV GOPATH=/go
    37  
    38  # Go tools
    39  RUN go get github.com/rancher/trash
    40  RUN go get github.com/golang/lint/golint
    41  
    42  # Docker
    43  RUN curl -sL https://get.docker.com/builds/Linux/x86_64/docker-1.9.1 > /usr/bin/docker && \
    44      chmod +x /usr/bin/docker
    45  
    46  # Build TCMU
    47  RUN cd /usr/src && \
    48      git clone https://github.com/yasker/tcmu-runner.git && \
    49      cd tcmu-runner && \
    50      git checkout ce3050a2b15830bafed0b21f488f2d26a86efb74
    51  RUN cd /usr/src/tcmu-runner && \
    52      cmake . -Dwith-glfs=false && \
    53      make && \
    54      make install && \
    55      cp scsi_defs.h /usr/local/include && \
    56      cp libtcmu_static.a /usr/local/lib/libtcmu.a
    57  
    58  # Install longhorn Docker driver
    59  RUN GOPATH=/tmp/docker-longhorn-driver && \
    60      mkdir -p $GOPATH/src/github.com/rancher && \
    61      cd $GOPATH/src/github.com/rancher && \
    62      git clone https://github.com/rancher/docker-longhorn-driver.git && \
    63      cd docker-longhorn-driver && \
    64      git checkout 5b3d6b4004481a8151c60bed7e6b1471a4960419 && \
    65      go build -o /usr/local/bin/docker-longhorn-driver
    66  
    67  # Install libqcow
    68  RUN curl -sfL https://github.com/libyal/libqcow/releases/download/20160123/libqcow-alpha-20160123.tar.gz | tar xvzf - -C /usr/src
    69  RUN cd /usr/src/libqcow-20160123 && \
    70      ./configure
    71  RUN cd /usr/src/libqcow-20160123 && \
    72      make -j$(nproc) && \
    73      make install
    74  
    75  VOLUME /tmp
    76  ENV TMPDIR /tmp
    77  ENTRYPOINT ["./scripts/entry"]
    78  CMD ["build"]