mirror of
https://github.com/aphrody-labs/msys2-docker.git
synced 2026-10-14 03:59:28 +00:00
Try to build a plain cygwin image
This commit is contained in:
1 parent
7e2002f0b0
commit
8cdc122148
4 files changed
+79
No files matched your search
@@ -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
|
||||
@@ -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
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
WINEDEBUG="-all" WINEPATH="C:\\cygwin64\\bin" xvfb-run -a wine bash.exe -o igncr -l "$@"
|
||||
@@ -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
|
||||
Reference in new issue
Block a user