De ce ar putea gazda să se comporte mai determinist decât un container pentru docker?

voturi
40

Folosim Docker pentru a defini bine mediul de construire și pentru a ajuta la construcții deterministe, dar pe mașina mea am o modificare minusculă a rezultatelor de construire folosind Docker, dar nu atunci când nu folosesc Docker.

Am făcut testări destul de ample și sunt în afara ideilor :(

Am testat pe următoarele sisteme:

  • R : Noul meu computer fără Docker
  • AD1 : Noul meu computer cu Docker, folosind Dockerfile noastre bazate pe ubuntu: 18.04 compilate „acum un an”
  • AD2 : Noul meu computer cu Docker, folosind Dockerfile noastre bazate pe ubuntu: 19: 10 compilate acum
  • B : laptopul meu (că am copiat discul de pe noul meu computer) fără Docker
  • BD : laptopul meu cu Docker
  • CD1 : laptopul colaboratorului cu Docker, folosind Dockerfile noastre bazate pe ubuntu: 18.04 compilat „acum un an”
  • CD2 : laptopul colaboratorului cu Docker, folosind Dockerfile noastre bazate pe ubuntu: 19: 10 compilate acum
  • DD : Un VPS Digital Ocean cu Dockerfile nostru bazat pe ubuntu: 18.04 compilat acum

În toate scenariile, am obținut oricare din două rezultate de construire, voi numi varianta X și Y.

  • Avem varianta X folosind A, B, CD1, CD2 și DD.
  • Avem varianta Y folosind AD1, AD2 și BD.

Problema continuă să fie 100% reproductibilă de la câteva versiuni ale aplicației noastre Android. Nu a dispărut când am actualizat Docker-ul meu din 19.03.6 la 19.03.8 pentru a se potrivi cu versiunea colaboratorului meu. Amândoi aveam Ubuntu 19.10 în acest moment și acum continui problema cu Ubuntu 20.04.

Întotdeauna am clonat proaspăt proiectul nostru într-un folder nou, am folosit troublesfs pentru a elimina problemele de sortare a sistemului de fișiere și am montat folderul în containerul docker.

Mă îndoiesc că este relevant, dar folosim acest document Dockerfile:

FROM ubuntu:18.04

RUN dpkg --add-architecture i386 && \
    apt-get update -y && \
    apt-get install -y software-properties-common && \
    apt-get update -y && \
    apt-get install -y wget \
            openjdk-8-jre-headless=8u162-b12-1 \
            openjdk-8-jre=8u162-b12-1 \
            openjdk-8-jdk-headless=8u162-b12-1 \
            openjdk-8-jdk=8u162-b12-1 \
            git unzip && \
    rm -rf /var/lib/apt/lists/* && \
    apt-get autoremove -y && \
    apt-get clean

# download and install Android SDK
ARG ANDROID_SDK_VERSION=4333796
ENV ANDROID_HOME /opt/android-sdk
RUN mkdir -p /opt/android-sdk && cd /opt/android-sdk && \
    wget -q https://dl.google.com/android/repository/sdk-tools-linux-${ANDROID_SDK_VERSION}.zip && \
    unzip *tools*linux*.zip && \
    rm *tools*linux*.zip && \
    yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses

De asemenea, aici sunt instrucțiunile de construire pe care le execut și obțin rezultate diferite. Diferența în sine poate fi găsită aici .


Editare: l-am depus și ca o eroare la repozația de docker .

Întrebat 22/05/2020 la 06:40
sursa de către utilizator
În alte limbi...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more