M-am lovit cu capul de un perete despre asta.
Caut să adaug un executabil la PATH sub wine pe Ubuntu 20.04.
Încerc să configurez acest lucru din fișierul docker, dar am o problemă ciudată.
Mai exact, încerc să instalez python sub wine, astfel încât să puteți apela piton de vin. Am ales să încerc să folosesc python încorporat și să instalez manual pip through get_pip.py (Nu este afișat aici).
În Dockerfile, am:
DIN ubuntu:20.04
RUN useradd --no-log-init -r --uid 1003 -G dialout -g 100 -s /bin/bash jenkins
# PULL /wine/winecfg de pe serverul privat preconfigurat
RUN dpkg --add-architecture i386 \
&& apt obține actualizare
&& apt get install -y \
libc6:i386 \
&& apt get install -y \
vin=5,0-3
RUN mkdir -p /wine/winecfg && chown -R jenkins:utilizatori /vin
# Adăugați Embedded Python
ARG Python_Embedded_Archive=python-3.9.7-embed-win32.zip
RUN apt-get install -y unzip
COPIEAZĂ ${Python_Embedded_Archive} /temp/${Python_Embedded_Archive}
RUN unzip /temp/${Python_Embedded_Archive} -d /wine/python
RUN chmod +x /wine/python/python.exe
RUN chown jenkins: utilizatorii /wine/python
# Treceți la jenkins, care deține vin
UTILIZATOR jenkins: adevărat
# Adăugați Embedded Python la PATH în vin
COPY add_to_wine_path.sh /wine
RUN bash /wine/add_to_wine_path.sh /wine/python \
&& wine python --versiune
RUN wine python --versiune
Notă: Acesta nu este fișierul docker complet, ci doar părțile relevante
Dosarul /wine/cfg este f
Cu add_to_wine_path.sh:
path_to_add=$1
echo „Adăugarea „$path_to_add” la variabila PATH a lui Wine”
# Curățați valorile căii curente (în general goale, dar scriptul poate fi apelat a doua oară)
existent_path=$(INTERROARE regul vinurilor 'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -v PATH | grep -Po '(?<=\^%).*(?=\^%)')
# Dacă valoarea căii existente este goală
dacă [ -z $cale_existent" ]
atunci
# Setați valorile implicite ale căilor (căi Windows)
existent_path="C:\windows\system32;C:\windows"
fi
wine reg add „HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment” -v PATH /t REG_EXPAND_SZ /d ^%\;&path_to_add\;$existing_path^% /f
Ce se întâmplă de fapt:
Când construiesc imaginea docker, primul apel la wine python --versiune funcționează, indicând că PATH a fost actualizat. URA!
Dar, când al doilea wine python --versiune rulează într-un alt mod ALERGA bloc, eșuează.
Acest lucru mi se pare că registrul trebuie să fie forțat să se actualizeze pentru toți utilizatorii din wine, efectiv o repornire.
Așa că am încercat cizma de vin cu toate opțiunile diferite și asta tot nu a ajutat.
Orice expert în Registrul Windows sau Wine știe ce se întâmplă aici?