add docker composer for multistage build with single file and remove all unwanted files

This commit is contained in:
Muzahid 2021-01-08 16:12:22 +05:30 committed by Muzahid Hussain
parent 6666ec9cb9
commit 17989a1e63
Signed by untrusted user: cis-muzahid
GPG Key ID: FE402425F5C0E6B0
4 changed files with 43 additions and 52 deletions

View File

@ -1,4 +1,5 @@
FROM ubuntu:bionic
FROM ubuntu:bionic AS pybm-build
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
@ -6,13 +7,15 @@ RUN dpkg --add-architecture i386
RUN apt-get update RUN apt-get update
RUN apt-get -y install sudo
# travis xenial bionic # travis xenial bionic
RUN apt-get install -yq --no-install-suggests --no-install-recommends \ RUN apt-get install -yq --no-install-suggests --no-install-recommends \
python-setuptools libssl-dev python-dev python-virtualenv python-pip python-setuptools libssl-dev libpq-dev python-prctl python-dev python-dev python-virtualenv python-pip
# travis focal # travis focal
RUN apt-get install -yq --no-install-suggests --no-install-recommends \ RUN apt-get install -yq --no-install-suggests --no-install-recommends \
python-setuptools libssl-dev python-dev python3-virtualenv python3-pip python-setuptools libpcap-dev libpq-dev python-prctl python-dev libpcap-dev python3-virtualenv python3-pip
# dpkg # dpkg
RUN apt-get install -yq --no-install-suggests --no-install-recommends \ RUN apt-get install -yq --no-install-suggests --no-install-recommends \
@ -46,3 +49,27 @@ RUN useradd -ms /bin/bash pool
RUN echo 'pool ALL=ALL NOPASSWD:ALL' >> /etc/sudoers RUN echo 'pool ALL=ALL NOPASSWD:ALL' >> /etc/sudoers
## pybm-travis
FROM pybm-build AS buildbot-test
RUN pip install --upgrade setuptools
ENV HOME /root
WORKDIR $HOME
RUN git clone https://github.com/Bitmessage/PyBitmessage
RUN apt-get -y install python-prctl g++
WORKDIR $HOME/PyBitmessage
ENV PATH $HOME/.local/bin:$PATH
RUN pip install -r requirements.txt
RUN ln -s src pybitmessage
RUN python setup.py install --user
RUN python checkdeps.py
RUN xvfb-run src/bitmessagemain.py -t
RUN python setup.py test

13
docker-compose.yml Normal file
View File

@ -0,0 +1,13 @@
version: "3.4"
services:
pybm-build:
image: pybm-build
build:
dockerfile: Dockerfile
context: .
buildbot-test:
image: buildbot-test
build:
dockerfile: Dockerfile
context: .
target: pybm-build

View File

@ -1,16 +0,0 @@
FROM pybm-build
USER pool
WORKDIR $HOME
RUN git clone https://github.com/Bitmessage/PyBitmessage
WORKDIR $HOME/PyBitmessage
ENV PATH $HOME/.local/bin:$PATH
RUN pip install -r requirements.txt
RUN ln -s src pybitmessage
RUN python setup.py install --user
RUN python checkdeps.py
RUN xvfb-run src/bitmessagemain.py -t
RUN python setup.py test

View File

@ -1,33 +0,0 @@
FROM pybm-build
USER pool
RUN mkdir $HOME/Downloads
WORKDIR $HOME/Downloads
RUN wget https://download.microsoft.com/download/7/9/6/796EF2E4-801B-4FC4-AB28-B59FBF6D907B/VCForPython27.msi
WORKDIR $HOME
RUN git clone https://github.com/Bitmessage/PyBitmessage
WORKDIR $HOME/PyBitmessage
ENV PATH $HOME/.local/bin:$PATH
RUN ln -s src pybitmessage
# 64b
RUN xvfb-run buildscripts/winbuild.sh
ENV WINEPREFIX $HOME/.wine64
ENV WINEARCH=win64
RUN xvfb-run wine msiexec -i $HOME/Downloads/VCForPython27.msi /q /norestart
RUN xvfb-run winetricks -q dotnet40
RUN xvfb-run wine pip install wheel
RUN xvfb-run wine python setup.py test
# 32b
RUN xvfb-run i386 buildscripts/winbuild.sh
ENV WINEPREFIX $HOME/.wine32
ENV WINEARCH=wine32
RUN xvfb-run i386 wine msiexec -i $HOME/Downloads/VCForPython27.msi /q /norestart
RUN xvfb-run i386 winetricks -q dotnet40
RUN xvfb-run i386 wine pip install wheel
RUN xvfb-run i386 wine python setup.py test