@@ -1,5 +1,5 @@
|
||||
#comment
|
||||
FROM alpine:3.21.4
|
||||
FROM alpine:3.22.2
|
||||
|
||||
RUN apk update
|
||||
RUN apk upgrade
|
||||
@@ -12,6 +12,7 @@ RUN apk add \
|
||||
bzip2 \
|
||||
clang17-extra-tools \
|
||||
cmake \
|
||||
curl \
|
||||
file \
|
||||
flex \
|
||||
g++ \
|
||||
@@ -43,6 +44,7 @@ RUN apk add \
|
||||
ruby \
|
||||
texinfo \
|
||||
unzip \
|
||||
xvfb \
|
||||
wget \
|
||||
wine \
|
||||
xz \
|
||||
@@ -102,6 +104,39 @@ RUN echo -e \
|
||||
"system = 'windows'\n"\
|
||||
> ${MY_TOOLCHAIN_FILE_MESON}
|
||||
|
||||
RUN mkdir -p /opt/bin;echo -e \
|
||||
"#!/bin/sh\n"\
|
||||
"COUNT=0\n"\
|
||||
"echo \"Start waiting on \$@\"\n"\
|
||||
"while pgrep \"\$@\" > /dev/null; do \n"\
|
||||
" echo \"waiting ...\"\n"\
|
||||
" sleep 1;\n"\
|
||||
" COUNT=\$((COUNT+1))\n"\
|
||||
" if [ \$COUNT -eq 60 ]; then\n"\
|
||||
" exit 3;\n"\
|
||||
" fi\n"\
|
||||
"done\n"\
|
||||
"echo \"\$@ completed\"\n"\
|
||||
> /opt/bin/waitonprocess && \
|
||||
chmod +x /opt/bin/waitonprocess && \
|
||||
cat /opt/bin/waitonprocess
|
||||
|
||||
RUN echo -e \
|
||||
"#!/bin/sh\n"\
|
||||
"Xvfb \$DISPLAY &\n"\
|
||||
"tokill=\$!\n"\
|
||||
"wine wineboot --init\n"\
|
||||
"waitonprocess wineserver\n"\
|
||||
"\"\$@\"\n"\
|
||||
"retval=\$?\n"\
|
||||
"kill -15 \$tokill\n"\
|
||||
"wine wineboot --shutdown\n"\
|
||||
"return \$retval\n"\
|
||||
> /opt/bin/wine-x11-run && \
|
||||
chmod +x /opt/bin/wine-x11-run && \
|
||||
cat /opt/bin/wine-x11-run
|
||||
|
||||
ENV PATH="/opt/bin:${PATH}"
|
||||
SHELL [ "/bin/bash", "-c" ]
|
||||
|
||||
RUN mkdir -p \
|
||||
@@ -711,6 +746,7 @@ RUN if [ -f "/3rd_party/cpp-httplib-${MY_CPP_HTTPLIB_VERSION}.tar.gz" ]; then \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_CXX_STANDARD=${MY_CXX_STANDARD} \
|
||||
-DCMAKE_INSTALL_PREFIX=${MY_MINGW_DIR} \
|
||||
-DCMAKE_SYSTEM_VERSION="10.0.0" \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${MY_TOOLCHAIN_FILE_CMAKE} \
|
||||
-DHTTPLIB_REQUIRE_BROTLI=OFF \
|
||||
-DHTTPLIB_REQUIRE_OPENSSL=ON \
|
||||
@@ -799,6 +835,7 @@ RUN if [ -f "/3rd_party/libevent-${MY_LIBEVENT_VERSION}-stable.tar.gz" ]; then \
|
||||
&& cmake .. \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_CXX_STANDARD=${MY_CXX_STANDARD} \
|
||||
-DCMAKE_C_FLAGS="-include winsock2.h -include ws2tcpip.h -include iphlpapi.h" \
|
||||
-DCMAKE_INSTALL_PREFIX=${MY_MINGW_DIR} \
|
||||
-DCMAKE_TOOLCHAIN_FILE=${MY_TOOLCHAIN_FILE_CMAKE} \
|
||||
-DEVENT__DISABLE_OPENSSL=ON \
|
||||
@@ -888,6 +925,7 @@ RUN if [ -f "/3rd_party/rocksdb-${MY_ROCKSDB_VERSION}.tar.gz" ]; then \
|
||||
-DROCKSDB_INSTALL_ON_WINDOWS=ON \
|
||||
-DWITH_BENCHMARK=OFF \
|
||||
-DWITH_BENCHMARK_TOOLS=OFF \
|
||||
-DWITH_BZ2=OFF \
|
||||
-DWITH_CORE_TOOLS=OFF \
|
||||
-DWITH_EXAMPLES=OFF \
|
||||
-DWITH_GFLAGS=OFF \
|
||||
@@ -1119,6 +1157,33 @@ RUN if [ -f "/3rd_party/libdsm-${MY_LIBDSM_VERSION}.tar.gz" ]; then \
|
||||
&& rm -r libdsm-${MY_LIBDSM_VERSION} \
|
||||
; fi
|
||||
|
||||
RUN (mv ${MY_MINGW_DIR}/lib/*.dll ${MY_MINGW_DIR}/bin || echo "no dll's found") \
|
||||
ENV DISPLAY=:90
|
||||
ENV WINEDEBUG=-all,err+all
|
||||
|
||||
ARG INNOSETUP_VERSION
|
||||
ENV MY_INNOSETUP_VERSION=${INNOSETUP_VERSION}
|
||||
RUN rm -rf /root/.wine; \
|
||||
wine64 reg add 'HKEY_CURRENT_USER\Software\Wine' /v ShowDotFiles /d Y \
|
||||
&& while [ ! -f /root/.wine/user.reg ]; do sleep 1; done; \
|
||||
wine-x11-run wine64 /3rd_party/mingw64/innosetup-${MY_INNOSETUP_VERSION}.exe /SP- /VERYSILENT /ALLUSERS /SUPPRESSMSGBOXES /DOWNLOADISCRYPT=1
|
||||
|
||||
ARG UID=1000
|
||||
ARG GID=1000
|
||||
ARG USERNAME=myuser
|
||||
|
||||
RUN delgroup scanner || echo "no scanner group found"
|
||||
|
||||
RUN addgroup -g $GID $USERNAME && \
|
||||
adduser -D -u $UID -G $USERNAME -h /home/$USERNAME $USERNAME
|
||||
|
||||
RUN rsync -av --progress /root/.wine/ /home/$USERNAME/.wine/ && \
|
||||
chown -R $UID:$GID -R /home/$USERNAME/.wine/
|
||||
|
||||
RUN (cp ${MY_MINGW_DIR}/lib/*.dll ${MY_MINGW_DIR}/bin || echo "no dll's found") \
|
||||
&& chmod 0777 -R ${MY_MINGW_DIR} \
|
||||
&& rm -rf /3rd_party
|
||||
&& rm -rf /3rd_party \
|
||||
&& rm -rf /root/.wine
|
||||
|
||||
USER $USERNAME
|
||||
WORKDIR /home/$USERNAME
|
||||
|
||||
|
||||
Reference in New Issue
Block a user