/ packages / docker / Dockerfile.bionic
Dockerfile.bionic
  1  FROM ubuntu:bionic AS base
  2  
  3  ENV DEBIAN_FRONTEND noninteractive
  4  
  5  RUN apt-get update
  6  
  7  # Common apt packages
  8  RUN apt-get install -yq --no-install-suggests --no-install-recommends \
  9      software-properties-common build-essential libcap-dev libssl-dev \
 10      python-all-dev python-setuptools wget xvfb
 11  
 12  ###############################################################################
 13  
 14  FROM base AS appimage
 15  
 16  RUN apt-get install -yq --no-install-suggests --no-install-recommends \
 17      debhelper dh-apparmor dh-python python-stdeb fakeroot
 18  
 19  COPY . /home/builder/src
 20  
 21  WORKDIR /home/builder/src
 22  
 23  CMD python setup.py sdist \
 24     && python setup.py --command-packages=stdeb.command bdist_deb \
 25     && dpkg-deb -I deb_dist/*.deb \
 26     && cp deb_dist/*.deb /dist/ \
 27     && ln -s /dist out \
 28     && buildscripts/appimage.sh
 29  
 30  ###############################################################################
 31  
 32  FROM base AS tox
 33  
 34  RUN apt-get install -yq --no-install-suggests --no-install-recommends \
 35      language-pack-en \
 36      libffi-dev python3-dev python3-pip python3.8 python3.8-dev python3.8-venv \
 37      python-msgpack python-pip python-qt4 python-six qt5dxcb-plugin tor
 38  
 39  RUN python3.8 -m pip install setuptools wheel
 40  RUN python3.8 -m pip install --upgrade pip tox virtualenv
 41  
 42  RUN useradd -m -U builder
 43  
 44  # copy sources
 45  COPY . /home/builder/src
 46  RUN chown -R builder.builder /home/builder/src
 47  
 48  USER builder
 49  
 50  ENV LANG en_US.UTF-8
 51  ENV LANGUAGE en_US:en
 52  ENV LC_ALL en_US.UTF-8
 53  
 54  WORKDIR /home/builder/src
 55  
 56  ENTRYPOINT ["tox"]
 57  
 58  ###############################################################################
 59  
 60  FROM base AS snap
 61  
 62  RUN apt-get install -yq --no-install-suggests --no-install-recommends snapcraft
 63  
 64  COPY . /home/builder/src
 65  
 66  WORKDIR /home/builder/src
 67  
 68  CMD cd packages && snapcraft && cp *.snap /dist/
 69  
 70  ###############################################################################
 71  
 72  FROM base AS winebuild
 73  
 74  RUN dpkg --add-architecture i386
 75  RUN apt-get update
 76  
 77  RUN apt-get install -yq --no-install-suggests --no-install-recommends \
 78      mingw-w64 wine-stable winetricks wine32 wine64
 79  
 80  COPY . /home/builder/src
 81  
 82  WORKDIR /home/builder/src
 83  
 84  # xvfb-run -a buildscripts/winbuild.sh
 85  CMD xvfb-run -a i386 buildscripts/winbuild.sh \
 86      && cp packages/pyinstaller/dist/*.exe /dist/
 87  
 88  ###############################################################################
 89  
 90  FROM base AS buildbot 
 91  
 92  # cleanup
 93  RUN rm -rf /var/lib/apt/lists/*
 94  
 95  # travis2bash
 96  RUN wget -O /usr/local/bin/travis2bash.sh https://git.bitmessage.org/Bitmessage/buildbot-scripts/raw/branch/master/travis2bash.sh
 97  RUN chmod +x /usr/local/bin/travis2bash.sh
 98  
 99  # copy entrypoint
100  COPY packages/docker/buildbot-entrypoint.sh entrypoint.sh
101  RUN chmod +x entrypoint.sh
102  
103  RUN useradd -m -U buildbot
104  RUN echo 'buildbot ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
105  
106  USER buildbot
107  
108  ENTRYPOINT /entrypoint.sh "$BUILDMASTER" "$WORKERNAME" "$WORKERPASS"
109  
110  ###############################################################################
111  
112  FROM base AS appandroid
113  
114  COPY . /home/builder/src
115  
116  WORKDIR /home/builder/src
117  
118  RUN chmod +x buildscripts/androiddev.sh
119  
120  RUN buildscripts/androiddev.sh