diff mbox series

[1/2] docker: Add win32/msys2/mingw64 docker

Message ID 20201007024135.1885-2-luoyonggang@gmail.com
State Superseded
Headers show
Series Improve cirrus msys2 | expand

Commit Message

罗勇刚(Yonggang Luo) Oct. 7, 2020, 2:41 a.m. UTC
This docker is used to preparing a msys2/mingw with basic software installed.

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
---
 tests/docker/dockerfiles/msys2.docker | 57 +++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)
 create mode 100644 tests/docker/dockerfiles/msys2.docker

Comments

Thomas Huth Oct. 7, 2020, 6:43 a.m. UTC | #1
On 07/10/2020 04.41, Yonggang Luo wrote:
> This docker is used to preparing a msys2/mingw with basic software installed.

> 

> Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>

> ---

>  tests/docker/dockerfiles/msys2.docker | 57 +++++++++++++++++++++++++++

>  1 file changed, 57 insertions(+)

>  create mode 100644 tests/docker/dockerfiles/msys2.docker

> 

> diff --git a/tests/docker/dockerfiles/msys2.docker b/tests/docker/dockerfiles/msys2.docker

> new file mode 100644

> index 0000000000..ce1404cbb8

> --- /dev/null

> +++ b/tests/docker/dockerfiles/msys2.docker

> @@ -0,0 +1,57 @@

> +FROM mcr.microsoft.com/windows/servercore:2004

> +RUN cmd /S /C powershell -NoLogo -NoProfile -Command netsh interface ipv4 show interfaces ; netsh interface ipv4 set subinterface 18 mtu=1460 store=persistent ; netsh interface ipv4 show interfaces ; Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) ;

> +RUN choco install -y --no-progress git 7zip

> +RUN cmd /S /C powershell -NoLogo -NoProfile -Command Remove-Item C:\ProgramData\chocolatey\logs -Force -Recurse ; Remove-Item C:\Users\ContainerAdministrator\AppData\Local\Temp -Force -Recurse

> +RUN mkdir C:\tools

> +RUN bitsadmin /transfer msys_download /dynamic /download /priority FOREGROUND https://github.com/msys2/msys2-installer/releases/download/2020-09-03/msys2-base-x86_64-20200903.sfx.exe C:\tools\base.exe

> +RUN cd /d C:\tools && base.exe -y

> +RUN cmd /S /C powershell -NoLogo -NoProfile -Command "((Get-Content -path C:\tools\msys64\etc\\post-install\\07-pacman-key.post -Raw) -replace '--refresh-keys', '--version') | Set-Content -Path C:\tools\msys64\etc\\post-install\\07-pacman-key.post"

> +RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf"

> +RUN C:\tools\msys64\usr\bin\bash.exe -lc "echo $MSYSTEM" >nul 2>&1

> +# RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/Server = http:\/\/repo.msys2.org\/msys\/.arch\///g' /etc/pacman.d/mirrorlist.msys"

> +# RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/Server = http:\/\/repo.msys2.org\/mingw\/i686\///g' /etc/pacman.d/mirrorlist.mingw32"

> +# RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/Server = http:\/\/repo.msys2.org\/mingw\/x86_64\///g' /etc/pacman.d/mirrorlist.mingw64"

> +RUN C:\tools\msys64\usr\bin\bash.exe -lc "grep -rl 'repo.msys2.org/' /etc/pacman.d/mirrorlist.* | xargs sed -i 's/repo.msys2.org\//mirrors.tuna.tsinghua.edu.cn\/msys2\//g'"

> +RUN C:\tools\msys64\usr\bin\pacman.exe --noconfirm -Sy

> +RUN echo Y | C:\tools\msys64\usr\bin\pacman.exe -Suu --noconfirm --needed

> +RUN taskkill /F /FI "MODULES eq msys-2.0.dll"

> +RUN tasklist

> +RUN C:\tools\msys64\usr\bin\bash.exe -lc "pacman.exe --noconfirm -S --needed \

> +base-devel \


base-devel pulls in a lot of stuff that we do not really need (automake...),
can you please replace it with the packages that are really required? See:

https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg00072.html

 Thanks,
  Thomas
罗勇刚(Yonggang Luo) Oct. 7, 2020, 8:17 a.m. UTC | #2
On Wed, Oct 7, 2020 at 2:43 PM Thomas Huth <thuth@redhat.com> wrote:
>

> On 07/10/2020 04.41, Yonggang Luo wrote:

> > This docker is used to preparing a msys2/mingw with basic software

installed.
> >

> > Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>

> > ---

> >  tests/docker/dockerfiles/msys2.docker | 57 +++++++++++++++++++++++++++

> >  1 file changed, 57 insertions(+)

> >  create mode 100644 tests/docker/dockerfiles/msys2.docker

> >

> > diff --git a/tests/docker/dockerfiles/msys2.docker

b/tests/docker/dockerfiles/msys2.docker
> > new file mode 100644

> > index 0000000000..ce1404cbb8

> > --- /dev/null

> > +++ b/tests/docker/dockerfiles/msys2.docker

> > @@ -0,0 +1,57 @@

> > +FROM mcr.microsoft.com/windows/servercore:2004

> > +RUN cmd /S /C powershell -NoLogo -NoProfile -Command netsh interface

ipv4 show interfaces ; netsh interface ipv4 set subinterface 18 mtu=1460
store=persistent ; netsh interface ipv4 show interfaces ;
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object
System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
;
> > +RUN choco install -y --no-progress git 7zip

> > +RUN cmd /S /C powershell -NoLogo -NoProfile -Command Remove-Item

C:\ProgramData\chocolatey\logs -Force -Recurse ; Remove-Item
C:\Users\ContainerAdministrator\AppData\Local\Temp -Force -Recurse
> > +RUN mkdir C:\tools

> > +RUN bitsadmin /transfer msys_download /dynamic /download /priority

FOREGROUND
https://github.com/msys2/msys2-installer/releases/download/2020-09-03/msys2-base-x86_64-20200903.sfx.exe
C:\tools\base.exe
> > +RUN cd /d C:\tools && base.exe -y

> > +RUN cmd /S /C powershell -NoLogo -NoProfile -Command "((Get-Content

-path C:\tools\msys64\etc\\post-install\\07-pacman-key.post -Raw) -replace
'--refresh-keys', '--version') | Set-Content -Path
C:\tools\msys64\etc\\post-install\\07-pacman-key.post"
> > +RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i

's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf"
> > +RUN C:\tools\msys64\usr\bin\bash.exe -lc "echo $MSYSTEM" >nul 2>&1

> > +# RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/Server =

http:\/\/repo.msys2.org\/msys\/.arch\///g' /etc/pacman.d/mirrorlist.msys"
> > +# RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/Server =

http:\/\/repo.msys2.org\/mingw\/i686\///g' /etc/pacman.d/mirrorlist.mingw32"
> > +# RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/Server =

http:\/\/repo.msys2.org\/mingw\/x86_64\///g'
/etc/pacman.d/mirrorlist.mingw64"
> > +RUN C:\tools\msys64\usr\bin\bash.exe -lc "grep -rl 'repo.msys2.org/'

/etc/pacman.d/mirrorlist.* | xargs sed -i 's/repo.msys2.org\//
mirrors.tuna.tsinghua.edu.cn\/msys2\//g'"
> > +RUN C:\tools\msys64\usr\bin\pacman.exe --noconfirm -Sy

> > +RUN echo Y | C:\tools\msys64\usr\bin\pacman.exe -Suu --noconfirm

--needed
> > +RUN taskkill /F /FI "MODULES eq msys-2.0.dll"

> > +RUN tasklist

> > +RUN C:\tools\msys64\usr\bin\bash.exe -lc "pacman.exe --noconfirm -S

--needed \
> > +base-devel \

>

> base-devel pulls in a lot of stuff that we do not really need

(automake...),
> can you please replace it with the packages that are really required? See:

OK
>

> https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg00072.html

>

>  Thanks,

>   Thomas

>



--
         此致
礼
罗勇刚
Yours
    sincerely,
Yonggang Luo
<div dir="ltr"><br><br>On Wed, Oct 7, 2020 at 2:43 PM Thomas Huth &lt;<a href="mailto:thuth@redhat.com">thuth@redhat.com</a>&gt; wrote:<br>&gt;<br>&gt; On 07/10/2020 04.41, Yonggang Luo wrote:<br>&gt; &gt; This docker is used to preparing a msys2/mingw with basic software installed.<br>&gt; &gt;<br>&gt; &gt; Signed-off-by: Yonggang Luo &lt;<a href="mailto:luoyonggang@gmail.com">luoyonggang@gmail.com</a>&gt;<br>&gt; &gt; ---<br>&gt; &gt;  tests/docker/dockerfiles/msys2.docker | 57 +++++++++++++++++++++++++++<br>&gt; &gt;  1 file changed, 57 insertions(+)<br>&gt; &gt;  create mode 100644 tests/docker/dockerfiles/msys2.docker<br>&gt; &gt;<br>&gt; &gt; diff --git a/tests/docker/dockerfiles/msys2.docker b/tests/docker/dockerfiles/msys2.docker<br>&gt; &gt; new file mode 100644<br>&gt; &gt; index 0000000000..ce1404cbb8<br>&gt; &gt; --- /dev/null<br>&gt; &gt; +++ b/tests/docker/dockerfiles/msys2.docker<br>&gt; &gt; @@ -0,0 +1,57 @@<br>&gt; &gt; +FROM <a href="http://mcr.microsoft.com/windows/servercore:2004">mcr.microsoft.com/windows/servercore:2004</a><br>&gt; &gt; +RUN cmd /S /C powershell -NoLogo -NoProfile -Command netsh interface ipv4 show interfaces ; netsh interface ipv4 set subinterface 18 mtu=1460 store=persistent ; netsh interface ipv4 show interfaces ; Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString(&#39;<a href="https://chocolatey.org/install.ps1&#39;">https://chocolatey.org/install.ps1&#39;</a>)) ;<br>&gt; &gt; +RUN choco install -y --no-progress git 7zip<br>&gt; &gt; +RUN cmd /S /C powershell -NoLogo -NoProfile -Command Remove-Item C:\ProgramData\chocolatey\logs -Force -Recurse ; Remove-Item C:\Users\ContainerAdministrator\AppData\Local\Temp -Force -Recurse<br>&gt; &gt; +RUN mkdir C:\tools<br>&gt; &gt; +RUN bitsadmin /transfer msys_download /dynamic /download /priority FOREGROUND <a href="https://github.com/msys2/msys2-installer/releases/download/2020-09-03/msys2-base-x86_64-20200903.sfx.exe">https://github.com/msys2/msys2-installer/releases/download/2020-09-03/msys2-base-x86_64-20200903.sfx.exe</a> C:\tools\base.exe<br>&gt; &gt; +RUN cd /d C:\tools &amp;&amp; base.exe -y<br>&gt; &gt; +RUN cmd /S /C powershell -NoLogo -NoProfile -Command &quot;((Get-Content -path C:\tools\msys64\etc\\post-install\\<a href="http://07-pacman-key.post">07-pacman-key.post</a> -Raw) -replace &#39;--refresh-keys&#39;, &#39;--version&#39;) | Set-Content -Path C:\tools\msys64\etc\\post-install\\<a href="http://07-pacman-key.post">07-pacman-key.post</a>&quot;<br>&gt; &gt; +RUN C:\tools\msys64\usr\bin\bash.exe -lc &quot;sed -i &#39;s/^CheckSpace/#CheckSpace/g&#39; /etc/pacman.conf&quot;<br>&gt; &gt; +RUN C:\tools\msys64\usr\bin\bash.exe -lc &quot;echo $MSYSTEM&quot; &gt;nul 2&gt;&amp;1<br>&gt; &gt; +# RUN C:\tools\msys64\usr\bin\bash.exe -lc &quot;sed -i &#39;s/Server = http:\/\/<a href="http://repo.msys2.org">repo.msys2.org</a>\/msys\/.arch\///g&#39; /etc/pacman.d/mirrorlist.msys&quot;<br>&gt; &gt; +# RUN C:\tools\msys64\usr\bin\bash.exe -lc &quot;sed -i &#39;s/Server = http:\/\/<a href="http://repo.msys2.org">repo.msys2.org</a>\/mingw\/i686\///g&#39; /etc/pacman.d/mirrorlist.mingw32&quot;<br>&gt; &gt; +# RUN C:\tools\msys64\usr\bin\bash.exe -lc &quot;sed -i &#39;s/Server = http:\/\/<a href="http://repo.msys2.org">repo.msys2.org</a>\/mingw\/x86_64\///g&#39; /etc/pacman.d/mirrorlist.mingw64&quot;<br>&gt; &gt; +RUN C:\tools\msys64\usr\bin\bash.exe -lc &quot;grep -rl &#39;<a href="http://repo.msys2.org/">repo.msys2.org/</a>&#39; /etc/pacman.d/mirrorlist.* | xargs sed -i &#39;s/<a href="http://repo.msys2.org">repo.msys2.org</a>\//<a href="http://mirrors.tuna.tsinghua.edu.cn">mirrors.tuna.tsinghua.edu.cn</a>\/msys2\//g&#39;&quot;<br>&gt; &gt; +RUN C:\tools\msys64\usr\bin\pacman.exe --noconfirm -Sy<br>&gt; &gt; +RUN echo Y | C:\tools\msys64\usr\bin\pacman.exe -Suu --noconfirm --needed<br>&gt; &gt; +RUN taskkill /F /FI &quot;MODULES eq msys-2.0.dll&quot;<br>&gt; &gt; +RUN tasklist<br>&gt; &gt; +RUN C:\tools\msys64\usr\bin\bash.exe -lc &quot;pacman.exe --noconfirm -S --needed \<br>&gt; &gt; +base-devel \<br>&gt;<br>&gt; base-devel pulls in a lot of stuff that we do not really need (automake...),<br>&gt; can you please replace it with the packages that are really required? See:<div>OK<br>&gt;<br>&gt; <a href="https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg00072.html">https://lists.gnu.org/archive/html/qemu-devel/2020-10/msg00072.html</a><br>&gt;<br>&gt;  Thanks,<br>&gt;   Thomas<br>&gt;<br><br><br>--<br>         此致<br>礼<br>罗勇刚<br>Yours<br>    sincerely,<br>Yonggang Luo</div></div>
diff mbox series

Patch

diff --git a/tests/docker/dockerfiles/msys2.docker b/tests/docker/dockerfiles/msys2.docker
new file mode 100644
index 0000000000..ce1404cbb8
--- /dev/null
+++ b/tests/docker/dockerfiles/msys2.docker
@@ -0,0 +1,57 @@ 
+FROM mcr.microsoft.com/windows/servercore:2004
+RUN cmd /S /C powershell -NoLogo -NoProfile -Command netsh interface ipv4 show interfaces ; netsh interface ipv4 set subinterface 18 mtu=1460 store=persistent ; netsh interface ipv4 show interfaces ; Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) ;
+RUN choco install -y --no-progress git 7zip
+RUN cmd /S /C powershell -NoLogo -NoProfile -Command Remove-Item C:\ProgramData\chocolatey\logs -Force -Recurse ; Remove-Item C:\Users\ContainerAdministrator\AppData\Local\Temp -Force -Recurse
+RUN mkdir C:\tools
+RUN bitsadmin /transfer msys_download /dynamic /download /priority FOREGROUND https://github.com/msys2/msys2-installer/releases/download/2020-09-03/msys2-base-x86_64-20200903.sfx.exe C:\tools\base.exe
+RUN cd /d C:\tools && base.exe -y
+RUN cmd /S /C powershell -NoLogo -NoProfile -Command "((Get-Content -path C:\tools\msys64\etc\\post-install\\07-pacman-key.post -Raw) -replace '--refresh-keys', '--version') | Set-Content -Path C:\tools\msys64\etc\\post-install\\07-pacman-key.post"
+RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/^CheckSpace/#CheckSpace/g' /etc/pacman.conf"
+RUN C:\tools\msys64\usr\bin\bash.exe -lc "echo $MSYSTEM" >nul 2>&1
+# RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/Server = http:\/\/repo.msys2.org\/msys\/.arch\///g' /etc/pacman.d/mirrorlist.msys"
+# RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/Server = http:\/\/repo.msys2.org\/mingw\/i686\///g' /etc/pacman.d/mirrorlist.mingw32"
+# RUN C:\tools\msys64\usr\bin\bash.exe -lc "sed -i 's/Server = http:\/\/repo.msys2.org\/mingw\/x86_64\///g' /etc/pacman.d/mirrorlist.mingw64"
+RUN C:\tools\msys64\usr\bin\bash.exe -lc "grep -rl 'repo.msys2.org/' /etc/pacman.d/mirrorlist.* | xargs sed -i 's/repo.msys2.org\//mirrors.tuna.tsinghua.edu.cn\/msys2\//g'"
+RUN C:\tools\msys64\usr\bin\pacman.exe --noconfirm -Sy
+RUN echo Y | C:\tools\msys64\usr\bin\pacman.exe -Suu --noconfirm --needed
+RUN taskkill /F /FI "MODULES eq msys-2.0.dll"
+RUN tasklist
+RUN C:\tools\msys64\usr\bin\bash.exe -lc "pacman.exe --noconfirm -S --needed \
+base-devel \
+git \
+mingw-w64-x86_64-python \
+mingw-w64-x86_64-python-setuptools \
+mingw-w64-x86_64-toolchain \
+mingw-w64-x86_64-SDL2 \
+mingw-w64-x86_64-SDL2_image \
+mingw-w64-x86_64-gtk3 \
+mingw-w64-x86_64-glib2 \
+mingw-w64-x86_64-ninja \
+mingw-w64-x86_64-make \
+mingw-w64-x86_64-jemalloc \
+mingw-w64-x86_64-lzo2 \
+mingw-w64-x86_64-zstd \
+mingw-w64-x86_64-libjpeg-turbo \
+mingw-w64-x86_64-pixman \
+mingw-w64-x86_64-libgcrypt \
+mingw-w64-x86_64-libpng \
+mingw-w64-x86_64-libssh \
+mingw-w64-x86_64-libxml2 \
+mingw-w64-x86_64-snappy \
+mingw-w64-x86_64-libusb \
+mingw-w64-x86_64-usbredir \
+mingw-w64-x86_64-libtasn1 \
+mingw-w64-x86_64-nettle \
+mingw-w64-x86_64-cyrus-sasl \
+mingw-w64-x86_64-curl \
+mingw-w64-x86_64-gnutls \
+mingw-w64-x86_64-zstd"
+
+RUN C:\tools\msys64\usr\bin\bash.exe -lc "rm -rf /var/cache/pacman/pkg/*"
+RUN del C:\tools\base.exe
+RUN cd C:\tools\msys64 && cmd /C "7z a -ttar . -so | 7z a -txz -simsys2-x86_64.tar C:\tools\msys2-x86_64.tar.xz"
+# docker build --tag lygstate/windowsservercore:msys2 -f "msys2.docker" .
+# docker run -it --rm -v c:/work:c:/work lygstate/windowsservercore:msys2 cmd
+# docker push lygstate/windowsservercore:msys2
+# no cache
+# docker build --no-cache --tag lygstate/windowsservercore:msys2 -f "msys2.docker" .