Try to build a plain cygwin image

This commit is contained in:
Christoph Reiter committed 2026-04-16 18:47:47 +02:00
1 parent 7e2002f0b0
commit 8cdc122148
4 files changed
+79

No files matched your search

+3
View File
@@ -39,12 +39,14 @@ jobs:
- name: Build images
run: |
docker build --tag ghcr.io/msys2/msys2-docker-experimental:latest ./msys2
docker build --tag ghcr.io/msys2/cygwin-docker-experimental:latest ./cygwin
docker build --tag ghcr.io/msys2/msys2-docker-devcontainer:latest ./devcontainer
- name: Save images
if: github.event_name == 'pull_request'
run: |
docker image save ghcr.io/msys2/msys2-docker-experimental:latest | zstd -T0 -c > experimental.tar.zst
docker image save ghcr.io/msys2/cygwin-docker-experimental:latest | zstd -T0 -c > cygwin.tar.zst
docker image save ghcr.io/msys2/msys2-docker-devcontainer:latest | zstd -T0 -c > devcontainer.tar.zst
- name: Upload artifacts
@@ -63,4 +65,5 @@ jobs:
if: github.event_name != 'pull_request'
run: |
docker push ghcr.io/msys2/msys2-docker-experimental:latest
docker push ghcr.io/msys2/cygwin-docker-experimental:latest
docker push ghcr.io/msys2/msys2-docker-devcontainer:latest
+46
View File
@@ -0,0 +1,46 @@
FROM ghcr.io/msys2/msys2-docker-build-base AS build
# Install dependencies and download Cygwin setup
RUN apt update && apt install -y --no-install-recommends curl ca-certificates
# Download Cygwin setup executable
RUN mkdir -p /tmp/cygwin
RUN curl --fail -L 'https://www.cygwin.com/setup-x86_64.exe' -o /tmp/cygwin/setup-x86_64.exe
FROM debian:trixie
# Install runtime deps
RUN apt update \
&& apt install -y --no-install-recommends xvfb wine64 xauth ca-certificates \
&& apt remove -y wine64 libwine \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /wine /
RUN ldconfig
# Avoid "tzset" startup warning + wineboot crashing
ENV TZ=UTC
# Initialize Wine
RUN WINEDEBUG=-all wineboot --init && wineserver --wait
# Copy Cygwin setup into Wine's filesystem
COPY --from=build /tmp/cygwin/setup-x86_64.exe /tmp/setup-x86_64.exe
# Install Cygwin via Wine
RUN WINEDEBUG=-all xvfb-run -a wine /tmp/setup-x86_64.exe \
--quiet-mode \
--no-shortcuts \
--no-startmenu \
--no-desktop \
--root 'C:\cygwin64' \
--site 'https://mirrors.kernel.org/sourceware/cygwin/' \
--local-package-dir 'C:\cygwin64\packages' \
&& wineserver --wait \
&& rm -Rf /root/.wine/drive_c/cygwin64/packages \
&& mv /tmp/setup-x86_64.exe /root/.wine/drive_c/cygwin64/bin/setup.exe
COPY ./cygwin /usr/bin/cygwin
RUN chmod +x /usr/bin/cygwin
WORKDIR /root/.wine/drive_c/cygwin64/home/root
CMD ["cygwin"]
Executable
+3
View File
@@ -0,0 +1,3 @@
#!/bin/bash
WINEDEBUG="-all" WINEPATH="C:\\cygwin64\\bin" xvfb-run -a wine bash.exe -o igncr -l "$@"
+27
View File
@@ -0,0 +1,27 @@
services:
build-base:
build:
context: ./build-base
image: ghcr.io/msys2/msys2-docker-build-base:latest
pull_policy: never
msys2:
build:
context: ./msys2
additional_contexts:
ghcr.io/msys2/msys2-docker-build-base: "service:build-base"
image: ghcr.io/msys2/msys2-docker-experimental:latest
cygwin:
build:
context: ./cygwin
additional_contexts:
ghcr.io/msys2/msys2-docker-build-base: "service:build-base"
image: ghcr.io/msys2/cygwin-docker-experimental:latest
devcontainer:
build:
context: ./devcontainer
additional_contexts:
ghcr.io/msys2/msys2-docker-build-base: "service:build-base"
image: ghcr.io/msys2/msys2-docker-devcontainer:latest