Skip to content

Commit 9fafeb3

Browse files
authored
support macos latest docker desktop version
1 parent e2e6958 commit 9fafeb3

File tree

1 file changed

+21
-69
lines changed

1 file changed

+21
-69
lines changed

lib/setup-docker.js

Lines changed: 21 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -125,12 +125,12 @@ async function run() {
125125

126126
core.startGroup('install docker')
127127
// await exec.exec('brew', ['update'])
128-
await exec.exec('wget', ['https://raw.githubusercontent.com/Homebrew/homebrew-cask/300b1dcc6d9f61cc93e9351e76066f0846beefe9/Casks/docker.rb']);
128+
// await exec.exec('wget', ['https://raw.githubusercontent.com/Homebrew/homebrew-cask/300b1dcc6d9f61cc93e9351e76066f0846beefe9/Casks/docker.rb']);
129129
await exec.exec('brew', [
130130
'install',
131131
'--cask',
132-
// DOCKER_CHANNEL !== 'stable' ? 'docker' : 'docker'
133-
'docker.rb',
132+
DOCKER_CHANNEL !== 'stable' ? 'docker' : 'docker',
133+
// 'docker.rb',
134134
]);
135135
core.endGroup();
136136

@@ -147,78 +147,30 @@ async function run() {
147147
]);
148148
core.endGroup();
149149

150-
// allow the app to run without confirmation
151-
await exec.exec('xattr', [
152-
'-d',
153-
'-r',
154-
'com.apple.quarantine',
155-
'/Applications/Docker.app'
150+
core.startGroup('start docker step1');
151+
// https://github.com/docker/for-mac/issues/2359#issuecomment-943131345
152+
await exec.exec('sudo',[
153+
'/Applications/Docker.app/Contents/MacOS/Docker',
154+
'--unattended',
155+
'--install-privileged-components'
156156
]);
157-
158-
// preemptively do docker.app's setup to avoid any gui prompts
159-
core.startGroup('start docker');
157+
core.endGroup();
158+
core.startGroup('start docker step2');
159+
await exec.exec('open',[
160+
'-a',
161+
'/Applications/Docker.app',
162+
'--args',
163+
'--unattended',
164+
'--accept-license'
165+
]);
166+
core.endGroup();
167+
core.startGroup('wait docker running');
160168
await exec.exec('sudo', [
161169
'bash',
162170
'-c',
163171
`
164172
set -x
165-
166-
VmnetdVersion=$(cat /Applications/Docker.app/Contents/Info.plist | tail -5 | head -1 | cut -d '>' -f 2 | cut -d '<' -f 1)
167-
168-
cat <<EOF | tee /tmp/com.docker.vmnetd.plist
169-
<?xml version="1.0" encoding="UTF-8"?>
170-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
171-
<plist version="1.0">
172-
<dict>
173-
<key>Label</key>
174-
<string>com.docker.vmnetd</string>
175-
<key>Program</key>
176-
<string>/Library/PrivilegedHelperTools/com.docker.vmnetd</string>
177-
<key>ProgramArguments</key>
178-
<array>
179-
<string>/Library/PrivilegedHelperTools/com.docker.vmnetd</string>
180-
</array>
181-
<key>RunAtLoad</key>
182-
<true/>
183-
<key>Sockets</key>
184-
<dict>
185-
<key>Listener</key>
186-
<dict>
187-
<key>SockPathMode</key>
188-
<integer>438</integer>
189-
<key>SockPathName</key>
190-
<string>/var/run/com.docker.vmnetd.sock</string>
191-
</dict>
192-
</dict>
193-
<key>Version</key>
194-
<string>\${VmnetdVersion}</string>
195-
</dict>
196-
</plist>
197-
EOF
198-
199-
sudo /bin/cp /Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd /Library/PrivilegedHelperTools
200-
# sudo /bin/cp /Applications/Docker.app/Contents/Resources/com.docker.vmnetd.plist /Library/LaunchDaemons/
201-
sudo /bin/cp /tmp/com.docker.vmnetd.plist /Library/LaunchDaemons/
202-
sudo /bin/chmod 544 /Library/PrivilegedHelperTools/com.docker.vmnetd
203-
sudo /bin/chmod 644 /Library/LaunchDaemons/com.docker.vmnetd.plist
204-
sudo /bin/launchctl load /Library/LaunchDaemons/com.docker.vmnetd.plist
205-
open -g /Applications/Docker.app || exit
206-
207-
sleep 60
208-
209-
docker info > /dev/null || true
210-
211-
sleep 30
212-
213-
docker info > /dev/null || true
214-
# Wait for the server to start up, if applicable.
215-
i=0
216-
while ! docker system info &>/dev/null; do
217-
(( i++ == 0 )) && printf %s '-- Waiting for Docker to finish starting up...' || printf '.'
218-
sleep 1
219-
done
220-
(( i )) && printf '\n'
221-
173+
while ! /Applications/Docker.app/Contents/Resources/bin/docker info &>/dev/null; do sleep 1;done
222174
echo "-- Docker is ready."
223175
`]);
224176
core.endGroup();

0 commit comments

Comments
 (0)