Miért viselkedhet a host inkább determinisztikusan, mint egy dokkoló-tároló?

szavazat
40

A Docker segítségével jól definiáljuk az összeállítási környezetet és segítünk a determinisztikus összeépítésekben, de a számítógépemen apró változást kapok az összeállítási eredményekben a Docker használatával, de nem, ha nem használom a Dockert.

Nagyon kiterjedt tesztelést végeztem, és elgondolkodtam az ötletektől :(

A következő rendszereken teszteltem:

  • V : Az új PC-m, Docker nélkül
  • AD1 : Az új PC-jem a Docker-rel, az ubuntu alapú Docker-fájl használatával: 18.04-ben összeállítva "egy évvel ezelőtt"
  • AD2 : Az új PC-jem a Docker-rel, az ubuntu: 19: 10 alapú Docker-fájl használatával, most összeállítva
  • B : A laptopom (amit a lemezt átmásoltam az új számítógépre) Docker nélkül
  • BD : A laptopom a Dockerrel
  • CD1 : Munkatárs laptopja a Dockerrel, az ubuntu alapú Docker fájl segítségével: 18.04 fordítva "egy évvel ezelőtt"
  • CD2 : Munkatárs laptopja a Dockerrel, az ubuntu: 19: 10 alapú Docker fájl segítségével, most összeállítva
  • DD : A digitális óceáni VPS az ubuntu: 18.04 alapú Dockerfile-vel, most összeállítva

Valamennyi forgatókönyvben szerepelünk két építkezési eredmény egyikének, az X és Y változatot nevezném.

  • X változatot kaptunk A, B, CD1, CD2 és DD felhasználásával.
  • Az Y változatot kaptuk AD1, AD2 és BD használatával.

A probléma továbbra is 100% -ban reprodukálható, mivel az Android alkalmazásunk számos kiadása óta megjelenik. Nem ment el, amikor 19.03.6-ról 19.03.8-ra frissítettem a Docker-et, hogy megfeleljen munkatársam verziójának. Akkoriban mindketten volt az Ubuntu 19.10-es verziója, és most folyamatosan foglalkozom az Ubuntu 20.04-rel.

Mindig frissen klónoztam projektünket egy új mappába, a rendetlen fájlokat használtam a fájlrendszer-rendezési problémák kiküszöbölésére, és a mappát a dokkoló tárolóba illesztettem.

Kétlem, hogy releváns, de ezt a Dockerfile-t használjuk:

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

Itt találhatók az építési utasítások is, amelyeket futtatok, és különböző eredményeket kapok. Maga a diff itt található .


Szerkesztés: Hibaként feltöltöttem a docker repo-ra is .

A kérdést 22/05/2020 06:40
a forrás felhasználó
Más nyelveken...                            

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