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