Skip to content

Commit e17932b

Browse files
authored
Document the process of running nativeTest via Docker Engine v29 (#37645)
1 parent 5906fdf commit e17932b

File tree

8 files changed

+213
-54
lines changed

8 files changed

+213
-54
lines changed

.github/workflows/graalvm.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
- name: Setup Rancher Desktop without GUI on Windows Server
5757
if: matrix.os == 'windows-latest'
5858
run: |
59-
./test/native/src/test/resources/test-native/ps1/wait-for-rancher-desktop-backend.ps1
59+
./test/native/src/test/resources/test-native/ps1/config-rdctl.ps1
6060
"PATH=$env:PATH" >> $env:GITHUB_ENV
6161
- uses: graalvm/setup-graalvm@v1
6262
with:

.github/workflows/nightly-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ jobs:
119119
- name: Setup Rancher Desktop without GUI on Windows Server
120120
if: matrix.os == 'windows-latest'
121121
run: |
122-
./test/native/src/test/resources/test-native/ps1/wait-for-rancher-desktop-backend.ps1
122+
./test/native/src/test/resources/test-native/ps1/config-rdctl.ps1
123123
"PATH=$env:PATH" >> $env:GITHUB_ENV
124124
- uses: graalvm/setup-graalvm@v1
125125
with:

docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/development/_index.cn.md

Lines changed: 45 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -51,27 +51,38 @@ sdk use java 24.0.2-graalce
5151
sudo apt-get install build-essential zlib1g-dev -y
5252
```
5353

54-
可在 bash 通过如下命令安装 Rootful 模式的 Docker Engine。本文不讨论更改 `/etc/docker/daemon.json` 的默认 logging driver。
54+
可在 bash 通过如下命令安装 Rootful 模式的 Docker Engine。
5555

5656
```shell
57-
sudo apt update && sudo apt upgrade -y
58-
sudo apt-get remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc
59-
cd /tmp/
60-
sudo apt-get install ca-certificates curl
57+
sudo apt update && sudo apt upgrade --assume-yes
58+
sudo apt-get remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
59+
sudo apt install ca-certificates curl --assume-yes
6160
sudo install -m 0755 -d /etc/apt/keyrings
6261
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
6362
sudo chmod a+r /etc/apt/keyrings/docker.asc
6463

65-
echo \
66-
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
67-
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
68-
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
64+
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
65+
Types: deb
66+
URIs: https://download.docker.com/linux/ubuntu
67+
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
68+
Components: stable
69+
Signed-By: /etc/apt/keyrings/docker.asc
70+
EOF
6971

7072
sudo apt-get update
71-
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
73+
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin --assume-yes
7274
sudo groupadd docker
7375
sudo usermod -aG docker $USER
7476
newgrp docker
77+
78+
sudo tee /etc/docker/daemon.json <<EOF
79+
{
80+
"log-driver": "local",
81+
"min-api-version": "1.24"
82+
}
83+
EOF
84+
85+
sudo systemctl restart docker.service
7586
```
7687

7788
### Windows
@@ -113,9 +124,19 @@ wsl --install
113124
winget install --id SUSE.RancherDesktop --source winget --skip-dependencies
114125
# 打开新的 PowerShell 7 终端
115126
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
116-
```
117127

118-
本文不讨论更改 Linux 发行版 `rancher-desktop``/etc/docker/daemon.json` 的默认 logging driver。
128+
@'
129+
{
130+
"features": {
131+
"containerd-snapshotter": true
132+
},
133+
"log-driver": "local"
134+
}
135+
'@ | rdctl shell sudo tee /etc/docker/daemon.json
136+
137+
rdctl shutdown
138+
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
139+
```
119140
120141
### Windows Server
121142
@@ -131,6 +152,18 @@ iex "& { $(irm https://raw.githubusercontent.com/microsoft/Windows-Containers/re
131152
winget install --id SUSE.RancherDesktop --source winget --skip-dependencies
132153
# 打开新的 PowerShell 7 终端
133154
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
155+
156+
@'
157+
{
158+
"features": {
159+
"containerd-snapshotter": true
160+
},
161+
"log-driver": "local"
162+
}
163+
'@ | rdctl shell sudo tee /etc/docker/daemon.json
164+
165+
rdctl shutdown
166+
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
134167
```
135168
136169
这类操作常见于 `windows-latest` 的 GitHub Actions Runner 中。

docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/development/_index.en.md

Lines changed: 44 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,27 +54,37 @@ sudo apt-get install build-essential zlib1g-dev -y
5454
```
5555

5656
Developer can install Docker Engine in rootful mode by running the following command in bash.
57-
This article does not discuss changing the default logging driver in `/etc/docker/daemon.json`.
5857

5958
```shell
60-
sudo apt update && sudo apt upgrade -y
61-
sudo apt-get remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc
62-
cd /tmp/
63-
sudo apt-get install ca-certificates curl
59+
sudo apt update && sudo apt upgrade --assume-yes
60+
sudo apt-get remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
61+
sudo apt install ca-certificates curl --assume-yes
6462
sudo install -m 0755 -d /etc/apt/keyrings
6563
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
6664
sudo chmod a+r /etc/apt/keyrings/docker.asc
6765

68-
echo \
69-
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
70-
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
71-
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
66+
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
67+
Types: deb
68+
URIs: https://download.docker.com/linux/ubuntu
69+
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
70+
Components: stable
71+
Signed-By: /etc/apt/keyrings/docker.asc
72+
EOF
7273

7374
sudo apt-get update
74-
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
75+
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin --assume-yes
7576
sudo groupadd docker
7677
sudo usermod -aG docker $USER
7778
newgrp docker
79+
80+
sudo tee /etc/docker/daemon.json <<EOF
81+
{
82+
"log-driver": "local",
83+
"min-api-version": "1.24"
84+
}
85+
EOF
86+
87+
sudo systemctl restart docker.service
7888
```
7989

8090
### Windows
@@ -119,9 +129,19 @@ and configure it to use the `dockerd(moby)` `Container Engine`.
119129
winget install --id SUSE.RancherDesktop --source winget --skip-dependencies
120130
# Open a new PowerShell 7 terminal
121131
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
122-
```
123132

124-
This article does not discuss changing the default logging driver in `/etc/docker/daemon.json` of the Linux distribution's `rancher-desktop`.
133+
@'
134+
{
135+
"features": {
136+
"containerd-snapshotter": true
137+
},
138+
"log-driver": "local"
139+
}
140+
'@ | rdctl shell sudo tee /etc/docker/daemon.json
141+
142+
rdctl shutdown
143+
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
144+
```
125145
126146
### Windows Server
127147
@@ -137,6 +157,18 @@ iex "& { $(irm https://raw.githubusercontent.com/microsoft/Windows-Containers/re
137157
winget install --id SUSE.RancherDesktop --source winget --skip-dependencies
138158
# Open a new PowerShell 7 terminal
139159
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
160+
161+
@'
162+
{
163+
"features": {
164+
"containerd-snapshotter": true
165+
},
166+
"log-driver": "local"
167+
}
168+
'@ | rdctl shell sudo tee /etc/docker/daemon.json
169+
170+
rdctl shutdown
171+
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
140172
```
141173
142174
This type of operation is commonly found in the GitHub Actions Runner for `windows-latest`.

docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.cn.md

Lines changed: 42 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -137,27 +137,38 @@ sdk install java 21.0.7-ms
137137
sdk use java 21.0.7-ms
138138
```
139139

140-
可在 bash 通过如下命令安装 Rootful 模式的 Docker Engine。本文不讨论更改 `/etc/docker/daemon.json` 的默认 logging driver。
140+
可在 bash 通过如下命令安装 Rootful 模式的 Docker Engine。
141141

142142
```shell
143-
sudo apt update && sudo apt upgrade -y
144-
sudo apt-get remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc
145-
cd /tmp/
146-
sudo apt-get install ca-certificates curl
143+
sudo apt update && sudo apt upgrade --assume-yes
144+
sudo apt-get remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
145+
sudo apt install ca-certificates curl --assume-yes
147146
sudo install -m 0755 -d /etc/apt/keyrings
148147
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
149148
sudo chmod a+r /etc/apt/keyrings/docker.asc
150149
151-
echo \
152-
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
153-
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
154-
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
150+
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
151+
Types: deb
152+
URIs: https://download.docker.com/linux/ubuntu
153+
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
154+
Components: stable
155+
Signed-By: /etc/apt/keyrings/docker.asc
156+
EOF
155157
156158
sudo apt-get update
157-
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
159+
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin --assume-yes
158160
sudo groupadd docker
159161
sudo usermod -aG docker $USER
160162
newgrp docker
163+
164+
sudo tee /etc/docker/daemon.json <<EOF
165+
{
166+
"log-driver": "local",
167+
"min-api-version": "1.24"
168+
}
169+
EOF
170+
171+
sudo systemctl restart docker.service
161172
```
162173

163174
##### Windows
@@ -185,8 +196,27 @@ vfox use --global java@21.0.7-ms
185196
wsl --install
186197
```
187198

188-
完成 WSL2 的启用后,在 https://rancherdesktop.io/ 下载和安装 `rancher-sandbox/rancher-desktop`,并设置使用 `dockerd(moby)` 的 `Container Engine`。
189-
本文不讨论更改 Linux 发行版 `rancher-desktop` 的 `/etc/docker/daemon.json` 的默认 logging driver。
199+
完成 WSL2 的启用后,通过如下的 PowerShell 7 命令下载和安装 `rancher-sandbox/rancher-desktop`,
200+
并设置使用 `dockerd(moby)` 的 `Container Engine`。
201+
202+
```shell
203+
winget install --id SUSE.RancherDesktop --source winget --skip-dependencies
204+
# 打开新的 PowerShell 7 终端
205+
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
206+
207+
@'
208+
{
209+
"features": {
210+
"containerd-snapshotter": true
211+
},
212+
"log-driver": "local"
213+
}
214+
'@ | rdctl shell sudo tee /etc/docker/daemon.json
215+
216+
rdctl shutdown
217+
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
218+
```
219+
190220

191221
#### 构建包含动态链接的 GraalVM Native Image 的 Docker Image
192222

docs/document/content/user-manual/shardingsphere-proxy/startup/graalvm-native-image.en.md

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -141,27 +141,38 @@ sdk install java 21.0.7-ms
141141
sdk use java 21.0.7-ms
142142
```
143143

144-
You can install Docker Engine in rootful mode by running the following command in bash. This article does not discuss changing the default logging driver in `/etc/docker/daemon.json`.
144+
You can install Docker Engine in rootful mode by running the following command in bash.
145145

146146
```shell
147-
sudo apt update && sudo apt upgrade -y
148-
sudo apt-get remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc
149-
cd /tmp/
150-
sudo apt-get install ca-certificates curl
147+
sudo apt update && sudo apt upgrade --assume-yes
148+
sudo apt-get remove docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc
149+
sudo apt install ca-certificates curl --assume-yes
151150
sudo install -m 0755 -d /etc/apt/keyrings
152151
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
153152
sudo chmod a+r /etc/apt/keyrings/docker.asc
154153
155-
echo \
156-
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
157-
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
158-
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
154+
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
155+
Types: deb
156+
URIs: https://download.docker.com/linux/ubuntu
157+
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
158+
Components: stable
159+
Signed-By: /etc/apt/keyrings/docker.asc
160+
EOF
159161
160162
sudo apt-get update
161-
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
163+
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin --assume-yes
162164
sudo groupadd docker
163165
sudo usermod -aG docker $USER
164166
newgrp docker
167+
168+
sudo tee /etc/docker/daemon.json <<EOF
169+
{
170+
"log-driver": "local",
171+
"min-api-version": "1.24"
172+
}
173+
EOF
174+
175+
sudo systemctl restart docker.service
165176
```
166177

167178
##### Windows
@@ -189,8 +200,26 @@ You can enable WSL2 and set `Ubuntu WSL` as the default Linux distribution in Po
189200
wsl --install
190201
```
191202

192-
After enabling WSL2, download and install `rancher-sandbox/rancher-desktop` from https://rancherdesktop.io/ and set up `Container Engine` using `dockerd(moby)`.
193-
This article does not discuss changing the default logging driver in `/etc/docker/daemon.json` of the Linux distribution `rancher-desktop`.
203+
After enabling WSL2, download and install `rancher-sandbox/rancher-desktop` using the following PowerShell 7 command,
204+
and configure `dockerd(moby)` to use the `Container Engine`.
205+
206+
```shell
207+
winget install --id SUSE.RancherDesktop --source winget --skip-dependencies
208+
# Open a new PowerShell 7 terminal
209+
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
210+
211+
@'
212+
{
213+
"features": {
214+
"containerd-snapshotter": true
215+
},
216+
"log-driver": "local"
217+
}
218+
'@ | rdctl shell sudo tee /etc/docker/daemon.json
219+
220+
rdctl shutdown
221+
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
222+
```
194223

195224
#### Build a Docker Image with a dynamically linked GraalVM Native Image
196225

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
#Requires -Version 7.4
2+
3+
#
4+
# Licensed to the Apache Software Foundation (ASF) under one or more
5+
# contributor license agreements. See the NOTICE file distributed with
6+
# this work for additional information regarding copyright ownership.
7+
# The ASF licenses this file to You under the Apache License, Version 2.0
8+
# (the "License"); you may not use this file except in compliance with
9+
# the License. You may obtain a copy of the License at
10+
#
11+
# http://www.apache.org/licenses/LICENSE-2.0
12+
#
13+
# Unless required by applicable law or agreed to in writing, software
14+
# distributed under the License is distributed on an "AS IS" BASIS,
15+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16+
# See the License for the specific language governing permissions and
17+
# limitations under the License.
18+
#
19+
20+
# This file is only used in the PowerShell 7 of ShardingSphere in GitHub Actions environment and should not be executed manually in a development environment.
21+
# Background information can be found at https://github.com/apache/shardingsphere/pull/35905 .
22+
iex "& { $(irm https://raw.githubusercontent.com/microsoft/Windows-Containers/refs/heads/Main/helpful_tools/Install-DockerCE/uninstall-docker-ce.ps1) } -Force"
23+
winget install --id jazzdelightsme.WingetPathUpdater --source winget
24+
winget install --id SUSE.RancherDesktop --source winget --skip-dependencies
25+
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
26+
./test/native/src/test/resources/test-native/ps1/wait-for-rancher-desktop-backend.ps1
27+
28+
@'
29+
{
30+
"features": {
31+
"containerd-snapshotter": true
32+
},
33+
"log-driver": "local"
34+
}
35+
'@ | rdctl shell sudo tee /etc/docker/daemon.json
36+
37+
rdctl shutdown
38+
rdctl start --application.start-in-background --container-engine.name=moby --kubernetes.enabled=false
39+
./test/native/src/test/resources/test-native/ps1/wait-for-rancher-desktop-backend.ps1

0 commit comments

Comments
 (0)