From 7d328ea1d6c1fbf0626470fe11480d128ae1d531 Mon Sep 17 00:00:00 2001 From: Konrad Ponichtera Date: Sun, 20 Feb 2022 19:21:10 +0100 Subject: [PATCH 1/2] Added Delve debugger to the development container (including instructions in the contribution guide). Signed-off-by: Konrad Ponichtera --- Dockerfile | 13 ++++ Makefile | 4 +- contrib/dockerd-rootless.sh | 6 +- docs/contributing/README.md | 1 + docs/contributing/debug.md | 66 ++++++++++++++++++ .../contributing/images/goland_add_config.png | Bin 0 -> 12148 bytes .../images/goland_debug_config.png | Bin 0 -> 73909 bytes .../images/goland_run_debug_config.png | Bin 0 -> 11976 bytes docs/contributing/test.md | 1 + hack/make/run | 35 ++++++++-- 10 files changed, 120 insertions(+), 6 deletions(-) create mode 100644 docs/contributing/debug.md create mode 100644 docs/contributing/images/goland_add_config.png create mode 100644 docs/contributing/images/goland_debug_config.png create mode 100644 docs/contributing/images/goland_run_debug_config.png diff --git a/Dockerfile b/Dockerfile index c5fea15ee3..a03ad47558 100644 --- a/Dockerfile +++ b/Dockerfile @@ -149,6 +149,18 @@ RUN --mount=type=cache,sharing=locked,id=moby-cross-true-aptlib,target=/var/lib/ FROM runtime-dev-cross-${CROSS} AS runtime-dev +FROM base AS delve +# DELVE_VERSION specifies the version of the Delve debugger binary +# from the https://github.com/go-delve/delve repository. +# It can be used to run Docker with a possibility of +# attaching debugger to it. +# +ARG DELVE_VERSION=v1.8.1 +RUN --mount=type=cache,target=/root/.cache/go-build \ + --mount=type=cache,target=/go/pkg/mod \ + GOBIN=/build/ GO111MODULE=on go install "github.com/go-delve/delve/cmd/dlv@${DELVE_VERSION}" \ + && /build/dlv --help + FROM base AS tomll # GOTOML_VERSION specifies the version of the tomll binary to build and install # from the https://github.com/pelletier/go-toml repository. This binary is used @@ -301,6 +313,7 @@ RUN pip3 install yamllint==1.26.1 COPY --from=dockercli /build/ /usr/local/cli COPY --from=frozen-images /build/ /docker-frozen-images COPY --from=swagger /build/ /usr/local/bin/ +COPY --from=delve /build/ /usr/local/bin/ COPY --from=tomll /build/ /usr/local/bin/ COPY --from=tini /build/ /usr/local/bin/ COPY --from=registry /build/ /usr/local/bin/ diff --git a/Makefile b/Makefile index 4d3170f8ae..e45a3429c5 100644 --- a/Makefile +++ b/Makefile @@ -68,6 +68,7 @@ DOCKER_ENVS := \ -e DOCKER_TEST_HOST \ -e DOCKER_USERLANDPROXY \ -e DOCKERD_ARGS \ + -e DELVE_PORT \ -e TEST_FORCE_VALIDATE \ -e TEST_INTEGRATION_DIR \ -e TEST_SKIP_INTEGRATION \ @@ -114,8 +115,9 @@ DOCKER_CONTAINER_NAME := $(if $(CONTAINER_NAME),--name $(CONTAINER_NAME),) DOCKER_IMAGE := docker-dev DOCKER_PORT_FORWARD := $(if $(DOCKER_PORT),-p "$(DOCKER_PORT)",) +DELVE_PORT_FORWARD := $(if $(DELVE_PORT),-p "$(DELVE_PORT)",) -DOCKER_FLAGS := $(DOCKER) run --rm -i --privileged $(DOCKER_CONTAINER_NAME) $(DOCKER_ENVS) $(DOCKER_MOUNT) $(DOCKER_PORT_FORWARD) +DOCKER_FLAGS := $(DOCKER) run --rm -i --privileged $(DOCKER_CONTAINER_NAME) $(DOCKER_ENVS) $(DOCKER_MOUNT) $(DOCKER_PORT_FORWARD) $(DELVE_PORT_FORWARD) BUILD_APT_MIRROR := $(if $(DOCKER_BUILD_APT_MIRROR),--build-arg APT_MIRROR=$(DOCKER_BUILD_APT_MIRROR)) export BUILD_APT_MIRROR diff --git a/contrib/dockerd-rootless.sh b/contrib/dockerd-rootless.sh index 7f31016f6a..396bcfa982 100755 --- a/contrib/dockerd-rootless.sh +++ b/contrib/dockerd-rootless.sh @@ -77,6 +77,8 @@ if [ -z "$mtu" ]; then mtu=1500 fi +dockerd="${DOCKERD:-dockerd}" + if [ -z "$_DOCKERD_ROOTLESS_CHILD" ]; then _DOCKERD_ROOTLESS_CHILD=1 export _DOCKERD_ROOTLESS_CHILD @@ -128,5 +130,7 @@ else mount --rbind ${realpath_etc_ssl} /etc/ssl fi - exec dockerd $@ + # shellcheck disable=SC2068 + # shellcheck disable=SC2086 + exec $dockerd $@ fi diff --git a/docs/contributing/README.md b/docs/contributing/README.md index 915c0cff1e..7779c80f05 100644 --- a/docs/contributing/README.md +++ b/docs/contributing/README.md @@ -6,3 +6,4 @@ * [Configure Git for contributing](set-up-git.md) * [Work with a development container](set-up-dev-env.md) * [Run tests and test documentation](test.md) + * [Debugging the daemon](debug.md) diff --git a/docs/contributing/debug.md b/docs/contributing/debug.md new file mode 100644 index 0000000000..1903d46e45 --- /dev/null +++ b/docs/contributing/debug.md @@ -0,0 +1,66 @@ +### Debugging the daemon + +The Docker daemon inside the development container can be debugged with [Delve](https://github.com/go-delve/delve). + +Delve debugger listens on a port, which has to be exposed outside the development container. +Also, in order to be able to debug the daemon, it has to be compiled with the debugging symbols. +This can be done by launching the development container with the following command: + +```bash +$ make BIND_DIR=. DOCKER_DEBUG=1 DELVE_PORT=127.0.0.1:2345:2345 shell +``` + +The `DOCKER_DEBUG` variable disables build optimizations, allowing to debug the binary, +while `DELVE_PORT` publishes the specified port for use with the debugger. + +The `DELVE_PORT` variable accepts the port in the same format as Docker CLI's `--publish` (`-p`) option. +This means that the port can be published in multiple ways: + +1. `DELVE_PORT=127.0.0.1:2345:2345` - exposes debugger on port `2345` for local development only (recommended) +2. `DELVE_PORT=2345:2345` - exposes debugger on port `2345` without binding to specific IP +3. `DELVE_PORT=2345` - same as above + +**IMPORTANT:** Publishing the port without binding it to localhost (127.0.0.1) might expose the debugger +outside the developer's machine and is not recommended. + +## Running Docker daemon with debugger attached + +1. Run development container with build optimizations disabled and Delve enabled: + ```bash + $ make BIND_DIR=. DOCKER_DEBUG=1 DELVE_PORT=127.0.0.1:2345:2345 shell + ``` +2. Inside the development container: + 1. Build the Docker daemon: + ```bash + $ ./hack/make.sh binary + ``` + 2. Install the newly-built daemon: + ```bash + $ make install + ``` + 3. Run the daemon through the `make.sh` script: + ```bash + $ ./hack/make.sh run + ``` + The execution will stop and wait for the IDE or Delve CLI to attach + to the port, specified with the `DELVE_PORT` variable. + Once the IDE or Delve CLI is attached, the execution will continue. + +## Debugging from IDE (on example of GoLand 2021.3) + +1. Open the project in GoLand +2. Click *Add Configuration* on the taskbar + ![GoLand - adding configuration](images/goland_add_config.png) +3. Create the *Go Remote* configuration. + No changes are necessary, unless a different port is to be used. + ![GoLand - adding remote configuration](images/goland_debug_config.png) +4. Run the Docker binary in the development container, as described in the previous section. + Make sure that the port in the `DELVE_PORT` variable corresponds to one, used in the *Go Remote* configuration. +5. Run the *Go Remote* configuration. + The Docker daemon will continue execution inside the container and debugger will stop it on the breakpoints. + ![GoLand - run Go Remote configuration](images/goland_run_debug_config.png) + +## Where to go next + +Congratulations, you have experienced how to use Delve to debug the Docker daemon +and how to configure an IDE to make use of it. \ No newline at end of file diff --git a/docs/contributing/images/goland_add_config.png b/docs/contributing/images/goland_add_config.png new file mode 100644 index 0000000000000000000000000000000000000000..6aebf732a7810d92be524d3d5a408ddd9dc73ecd GIT binary patch literal 12148 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 QG>cdP7+p-9&CKjwEFD~rq1y$4L5weh zM4ioyT&*1JNmZ@v%pg?V%t+bTNF~gSN!eI{53FpwEG)dNoTS3?q@v=ge-aFJCX6+SnX7 z%p2M5SJ2y+vRZRY9M~n#MN*bAV33m8ayw2Rqe4MCuM$E9M_r$va-&wbL?2&*+d4k& zyZDAdrUnRq4Q-p&t8mBwRU$J+hW{a{^V1v6tE>7WXWxYuzjqMBzqu}{uv%Ijtn)h; zywU%X6~3at@i}J!-xI1(dmphKCOGyI1loiKRRa8 z6Lr!4Et?q{kN8xlev&MAQv6P|{9LVG_k`w~;T^bwl@Yh473c4;xIQb(vXIbtm?Pd{ zi7dBYv+B$?S=Y!^Z>;^w0bVJg^^^Y)qK>#6kEr$b4w4S6Ox2UG_2r)M>VA$%07U-W0kg2S0y{q7OitnwBk7)`%?fwN5Dv{VU=-j)K%6JTPG!UuoBld!*A6U?MArI zlg%E-`T!q#gedR|#h9`ELH(0Tf&Zj0#>5e7WQYr=Uiv0uRKmz;E${LEn&iZj-~VgP zJ5e>ZPVq-+xY&@P3iL}i|B^J_T}#|P2Y6(Bj<=+wq|^4G4QFto>Oawg!@c;4b(wHb z!h&*hb4z9c%FN8H=%CJ>%^_z9hz`}ES7m%w%n|gJ&@7+U4C|i2n4$QOvwK@5DWp0l|QX_}PyNZ{QG)AvGZs;YIS5C4{NhAb&5A?4(3fKI9v`A_z1tR6LS6<$xk9vu+JFB!0i;fE(X0THQ%cd|< z3$+L6IJB0}nOvF8*L{=A;!PqJXu`zDmoYb|2Ci?kUN1XLpD#KOGcJ1V90rGm);O+_ z13T(Bi52K`85iguN-9mi)Qx_Fg%vzyomW?f1X@6TFD3Pg#PVl?3e&cICW~J>b1tbGJyVyhM{bMcb*hPL_}({Dfsy_dwRsK zj^z97K^m0?Z9Y81$&572%&`CqC%;tMH_|M!?WbKpFp<4o2G4gEe)kJ2ES5jsv$3;F zOG|$>=~tknrsmuS_r;QoCn!F>C@!#+%gqV;$BSLzg@y^&_B9Ghzt&fiBHIQ05!DPqpLE`%rNG+1p$77$r8AgQKx|o*sd)n!NkOb&*c>V z)xlhMH>wa+$42aPFyB#Qmche%N|{z|@>f}$TG!ufLqkK2XG5=NZ8^6`@8h|aJ!{qH z)VKz88f?q29|i{pTOQ8nAGW!kV+kBu@_4~$SXez2u@7HPH~KM&iTi*}-|h%K_nvNO zP4$Nc!<=7C`kQVJ#AR|j1;z^Ap&Izzz6mgxLC3)8dRgCTqwj;R?#OztY~%e=^X*AD zs@Hz`T>W~TCIkOT2Xta$;z_ZPfL@kn$@lK>$#_Lp&d06SEN*+M^Pt$R)y|-n+ilzF zN&|z|_R2f&?X==F7P8j?Df%DL18A~unC~urcNfG8cC9>JF&Ox;j$1rD`7vu$=nht! z^n;)7_6LV}$C&+ZZHRqNASI&lrRC(1yu7>^4B7%`4E%#We@5_ozAtXP+Z%ju2Es`h z?hSsep=O{XE)F}R&sQ+F2W`06SPg9R(RF`1IzAqQjSb~2W91<^KR^GYe*^FU@XyY3 zo-=XuJ+lFI&-Q;ZfS{zL{F0qL=Kp-{&-K-^-5JiUS^SqqKzR6oc%Jul&mKXq-9p2y z@8admI4K=nM1drG#OKfJpWu%y4rW>FufXe{=>bP*czv{loLp}{stwWPwy)lL6zl&W zWDnjl2mGmKtvO?XWb8IzLVX@gw+!swS zJW-HVrdf?K$#J`UeYDya4k9twBPhTpS2z@ z^BDAIw%4+&zwR zt!TFrl8}sN@{q89ys*^wK6Fzr(;WQyRTg}=SL(G9%_S`_f2r;6G9{V9q*tX~ZoASJ z1USDp#go75pTq&>Ep2Q6J?bd5qJ#<$Z9NWS^os}WmotElm@rB;D!=J7(bt|=`U|X- zY@DAX0^)?2V#EYIVkrofn15j36LA>^4h{n_bHLUdd9$V%aV261JDc2Wv_STDm+~%v zd0aa6$CC7KIYTA|i9xv@&QDd|G`p1&wwyH|b84)VF=^G5Ek7z|^S@SIww$41t>!DT zsxj*B!#7hO3yk~nqkOupZLbo%;UEPVZFvurYD~y!^U7l~*k$KrjIWjzDQI9I{G-fC z1$fWo`RNhs%^RmFH4Pxf%{;83K5N+YVFH2H1)XRq6vx2l)6r712CCFzy^RK7s5xSi zAS>%r3o6V#1_C#Dn+wiHlcgX)C`{br{O1<&@fCneD*&v7_2Wf}_JWPO(8LU^Nm-YInj*g)t2o%Y~;`vLxuu=6n z-0HfzUlu+PVJJj>hwhW58si@=rb_nW4ePb7d)|ciZ{(GY99`m`==-;EQ2QCI3^!Hx z_V=Iulx6B_PxInC~gEK z4)OGKJ(O0%#>VFPa7y#?BLxISGO|w=Ilc{a;xj1}B}p_a`vferV{egL<=@ED)g}Gbgc9jt*pL{ry=vY?ezfhC}w!;JFyrm#fIT! zw2!_%aTqE|g`b+h5?pv>Bn1l#T7Yta1eD{6;g&5gDJ(rf|ak<^J|Oqy>NNpo0FJ^mFd!=Iqx z(SZPTcS$f?V}^Kpn>0vVI;GtjJE@fh5gz`k5|p`J7Mnn$c(xwN?6hF#aq@IeVwg_d z9g1wHiU(kncXNkk2MeH_eq!%TmEtpQx3{tVB>sVbz_|John7P>l+=&znH4v|(t=3= zL=$Z`oa_WdpdYmssOBT7ohb%>gHMm}yGzYD4sEw^fF4HSvbHFjg@%UyEY)BJyyEKR zw})~6Cw9P~iFjRe0jH{2uCDKQo3uwT2KWyahvk%!OfSsJ_9uJ*xRFs85s{JQJzRm> zOVy_Nj$1|nFo7%7=1kg;D)jKG#0P)nhg)G$QH{$E6C5)Bz`>kDe0H|7K$V&Ai-E(T z5{p&px8AGqL@x%!KHhbnnDEi5C0Fj=g)5kW(2aX9bb1z?zQd>sk_fmW@( z7eBo6{N!OfSCa%pKWc>*gn+s_j`m>y-hSJkko5PNZUSWLdD5vhs@ziP)2X#YZhb^a zPVPK$>dF6bzfuW#@WIQiENAR`ZpP`RK=R07)p8`#zn<`k&3)RBpI81L)y+qSC-0052?2?EcO|&ku-f z?6GX_2e?4OHOB0BD(ikQtJS(RTcqBGD4o*KZm#(65{xvrGs4@v>MiL;IR9-iP z>qQqXdr%kv2o1^%+B=Wg04vpwoALPs*#m+7R)mi~AM35bdt2Z6-h2g_$&1sGlc&^=jL0o}ANvAZX4-8J!;bu_4vH=;q=fjOGRd^t zSgLz)3RDktyINvum0adN18Ee;ZY1+|z56Ra07Bs{I(8!;EP@k`mN4-IeYgp@?8}bU z9rK!JH-Lm4oH-@OWElz|=(tEtBO|g;pFX`PI~WWeNjs;jY&o;G3EKii3IN%9+;H%W zG}-q)-74p+RK$1v`kr8q<7Ir8f7$pZTaEwolU+w_iNLhT5-U#TY=IbqN(WV=P=4=kmBqt~OG#Q(dN@PFSWpZ{OUBAg>)#e|8F z*R_Od<6n*(7n!&+7=m8V-(X5ezAkR13`w>YS56fAXCB?6=?d+&8NWSjvVTkbFLTBJ zmk9o(lwtZG3*QLjZftE@C<^{|$!Qn5Ui1nF9{me#b`@`SnH9?Rb3>q55LfD3;KDgo z9|94&QP=(q0fCN@-liN4h(#|$$$uFShI}u6#yQ7)N{(r@M~rv~^jY@1x6@_vh|C62 z$M%cr3zI3NWDJ}rfv)MJ5<4lFvy0%I^;YGi!;77h$B@ z#wCy3{g0XGg3T^iYO4p&_`cZdrgAFn55X|7Mz~+nl0?NcX_e#9NBvO#CC7Di;8hw2 zuB)dy>&72Rb3jfBgSkS6eeHD+^KY`07;{;sUmgW|9=<9$ZTH@yD~pP^%pqcdTw8BY z*lL}%`H=q275;52Fh{#|tE-ovwCJzYbcxd$!AjTEjbF_pEz2_wr)|MM;@KTwVBs(p zn3|@W(pA)66cnJF{A5Hw-W5iibow|nJah$9Pt9^SJ>EV@B_&lkBW2b!EuPsjb>sPl zyvD*htugw)k1Yk23a6z}3C^L+d(6eEQ%Ok^#!)>mFSn%eV+N#{r1*yq+7kN0MwsN- zfA$zR95*))DK$(_%aEU2ax-#|9|1ebVKvi$%mm8FU&mm;mbD21Z0v<_zG2&db3eWE zJy(-dTgWgO3Hfd+vb2@k0Rd&p39&xk5Ai>A9ba;Z+@~=yp7LD+f||_mfeiIuo}>U> zbwqDW#31}TrSorP0FE(9`+jtHI7EBV2EqebX&d0nMC>gHET9A_D8*ITCU3mwYE#{Y8)KL^#T1h zz1om&s_aly2jS4(&{0R_HCK=}60k96d*0sOxU?*JEibUaJv=@-3ZTRvx0x||tp%7Fq*{^U`GJ*EuuG@bJ&Yl9%UTFar+%&qnu|f1RO0uq9uZk$ zzPeiXaYi{dzx;_z$N<}o@jl>p;bI;<<`jco>Q%SSZo@r=zCo6_icOydQHI^F$E7PZ zayU)N1zM@lb4-bjJ(<(7zo*?6>!JjQ$+7>JU_0jXwW|+fmn$O>8PNz~(2>0&N=izX zce%NwGD8QAx)poA+K~WTDac%N3vC63*J9MyBdf!SH7-w%%~+ngC_}@;PAUps+r-J` zQB**Uy6i796MnVZmDub+&FTVc(EdzCBSXg0!brpit7Ht%VwK}cat+e* zO{){UOlS@tNyK^^lfu#c+|;%=OX@t}T5;@|c&(q^EzOQrz#l*ikFv_Ezi9hxBN-fm z@di)WOB|N7^vxtcJF}>gAq3#19J#Y#;9$NOC`lPPNwa5xotR2CMSx<=?yqXh;bi7Y z54=^tURcgf&L6eYDZ48Yb>kDaBzI zv?G>zLX8tEBFJ0?(ol^3s;zl9JuQl&0$y(+Y;8<_YoT|4@Q^Lt3Aza#$4bf35fQQd zDLF_j$F2bvPCm0Ib(zS@gmLTU>5@UaA*jr`V?M3aVo9dG;M~hj7~$$%ox;L1Qz6qH z{>|8=Kb)=IZy}}#bb+C1$iS_Tlpq9XQew&IXKJphnID6Cb}JVj^Ylh z*n)DdTvclJUG#O_VKhVm0}CIZ8vf}80WGSM_B^W2rXUo>#6(BQRqD3UwCZ&>+iLpc z#hWJVnIW}E(@wE))Dwb9Yc&4z_Q0x$J+(;K(-Rls6C~u+K2fm_El{_Sn=D(#CMK3} zvZAxUzV+917pB7Li^1#0Id8Ld1Q%6RITq;(gv{vsw?2tPlg_*E3s+VgT4CDuYN<=< zkD;R!5`JCH)Q(E6Yd1zH;LACxjE2|nV)deljZ4pzaZk(k910ncKT7WPS$Nhjie2a? z7-r|$pXu1@$<7#w=aC&`WVf26h#)A|8=oBkX{Px$@uZ?lh~OZex7`LiAV5oHawlXQ zHK&v@%4%Kwc6N^D?pt!jWT!DdJ$v97dYyOu4&;(#N91DRKPFuZ-EA?lIY!sp!X^~$ z92@jApZv27efpwn`6&a8L?64UtwGthVJQ$a%%sbid{nJpzXpk~d<9q_@SvLRKhE#id_=+Cl-EkjeOm`%|K=`LoTS9DWg>`8*YB!3z{Tz z<2nj%qijI!PRr=)6OWv89f>K<)AZFdS+alCRx$dD#%YnVg78PuEE+rwyUJ{pCy$oz z-Zv8n2G{nhejf)ZTsY8a=_lgFIU7%3cQ%2e^9kgxl_t1Fd(_@uDlv&*jY>YRw>dv+ zhUSr8qZH}6s$Mp%ug9xPGjzZv>xM^#7gkl}c5XFwb$7Q`z*qGmnchWfuosH5NMzYf zA~u|LmLf_!xCVBT=DP^Np$aySNMrugdRQyA9kD8he1}91FK5!XDiu@ln5Y)^i(96} zF~_jG>v-3HT($4WH$_d$&3;F~tI&41)K8~nL#F}NH=x2v7su-EDGf|J#*g z{n}{s$Ga~rPB>xb{O{kEauS`{6KhF#34{4=M8A((d(MnOjm1HiX5&ei&eYvDZ$b1Ts<^%E* z3bLU5*%{wS#uboJz{gp`TzVEH;MJ`Vda*b7iP4)!dlmAh7U=R-kfd8-d0MBF4tX~m z?!ki(luu^#kz8{*I7?OFP{3EUI$!q2!ETibpRMY7@t!CfR#h-;I7*d5& zzTT=g#k9rXc`UuZ-FKPQS2ZZ}(=}lPv_|G3c%cz&K^?i>D*sU$t(u5}meFZOrGM&; z@caxjTl2cn5rY1Zi$Rtjx2f1hZCI-GHJxBpyNxX{j9(Zcf6m_@_%?!@JWwe8ICq{yRL-fX|6Y|p;`O1UExWKl zWg&4z8M04nJ(q_f!C3Zn8=p-x9`<;E@S{|egRH3~*5L*NA=iG<?_%Ha-ltN*PU?JO91~r;0=Lw^#bg(Z@HTfRr{_sp zoXmM`Zb~q(X@ci_AB0rO+w+R_SGx8PMDEhP2(s`%AAr@ zZ!N#n3lkPjUZ{iwizF|mzb+$xoke!pH|3yu15e<|Ttd#x`K<}pzDBu`P0=;Yx`dLV z1TyE`RnD7(Q71@oTkWdgMoD`^&G9#dhmej=o`+D$$8;r3-LI}MNlW^qefY!Ky7I#d z!=d{Xl(!wbBPg(@yyFyp&M=xStPSnY)!LE~VH~f0UPeEd)m1F>(=&-FUwK7Kg7kgOg@1%>-b>RaahGMn*mx9Vsam_0s4rkrkD)GM)D9 zJkii9+uO5`DUeT3i!L2$)i`6=VwLnX6EtPPo6O5QlLGJHCI^P8_ATL>_X&+)8VbB~ zj$ExsVv0#Kg5a;>;%1btI-|SwMWiDLWIoSJS;aDx4&c~1VwQa|e`67a z3tYdtzbbU@I)V(8Cgh8II)b(xL&%q%K@r0fCzM_mc8-z0&u-nF;0gWmIic`iURvTQ zEvG7U9qCXo=C?*&Kg@cVL3i{Lk*U3Y&-TUt&qS{K$szX2Ff(Ovd&!=xeSk#*uNzdepZ3gUH~e3|_5XkFpc z!ILcwEU`krccR0}bKuhQ&x7SN27Ui5>oN``xdL~nqR$I@iWX=Ff1mcKN^)ZUriQf!Ke&0ALWi@^R~E%}DLDKg+y(Zfo4=(Ez+Z%hFhz&7j;+Vli;-b=B6aVUgg4=pFH_r1P1*``65l%H@p;!Wcpqwh}umYVl>0 z%YFREcFtNmey3?db@QB@<~tX!U2HsJ2_-{P2uMgyk-#7ux5!toN)BpBuyCb-%&4?p z-!gf#YjZFGK>3DanTpm_xFRBf;KPOmItGT#^KqeTtudg?HQWCDK4{qQ_3luBzR{QV zIOM@L$=@6cNUPh;l?4WgU+=QXeh(?zK3s@m7vFQ~h2zbIN?|U--eP%nOdDZ&EWL}c z&+GfmCdqEJ$+_Kfj|?wkSGO+5d}HJPHjNw{4x0y~1Rio>*K&!7xE_i@@jD&p0B4!)xnLTBBe-3i9j zrTcUmf_0_=it%0P9d3fbFooy1x;~7RvB8K|Sc|@NmZ-gz@1VZCtzvJ_WiN&!6eyTYIiTV2iVwhVWw5=hd?yzTS#%iv|`wOEUWC}cgPqNyb z1JdzWf2bvUpz727^o&E`9W7WfTBlt-ee+z}`|d0+!wNq*BxG89hKUy;tiU;I)V#Ew zk%1vGKYkj|BTq}4l3BYBEnvaEIqS<8!&N!sylr=XF)9?(4uN*VUkS`?dxJQ5j^oVX zGK8}wo>AfMb;uCc-*gqSo^BC#**@=A=5$6+RodX?;6@n*vwO~S+=(Yw`A^)poOHE& zc??1#lvhVJnG@>mHCM8c?+WDAl%;_ddnvACii2ok?e^VOr1&KCys4I;Vrq{HG;SAG z3^vQZ{#F%3H6I#iWKTM(c5xi-Z@F8Ke7G+a*!1q;IGcUi@@~25qHn3)V|gQ-g~#<4 zGGm-uVAIYsXGYy@qfh#5XZ+0H|6?-ve&GfuQaAa)ie4*oIeS9XxYQq;zgIjln2N2$ zgG2aJp6f1Oj8Rtl?5lSE=;(#dzgf2=;xP(daUk2GpHlXOsQZ1%IK*?=30m|p!-4Wi znu6l@;?rs!7S1{CjsQWu!LyxHlj};FVJotsge>~R*a8jY51IEQ+3~6k#pxG0+!4Y= zU9V8ABy$Q&caIl)r$tdZBqRC|{oC)Dw452`yw$7j&2*I|w$;k2s*Bdpyqv?WW>!{sF55m(s?@mi zz<~yEdb*IFC%9DE79_}iRQ!DHr(gkQTrm>*B4SIQyEY~d~u{?@CHxJ zjiBRA5Ik#%1JohEq}Kf)yibC87^lGQQYQkHds!AdoAocWkHO$7Z@GEbaH^8;udZ3$ z?Gz~Z+P{=7@kujZuF?q(j4eqHFb-_|xN0SI!Gn>gC!<`<;TG`ZFZTb!U!3w7EzYF! z^+2aB(3i?WFko>mBei{xGOI{vAR%_C->nrvTES|MzZE5>;vrSBA$iiGkHPP0MQAI+ zyNHFO?JXEhN>dd}c}=*SBRL?5B4auMn?IEvUfgJPa~5R4;$XoeP`um?v_1@VgY!IL6$&H@C z_~Z6_JAOJ*vKPe|8yfSoDzAx&^-pqH!AYOe%vI9><YXIy$C&RcWe7 zrCtrAE1^J=(`#iIc*zOhMJx#zs`I6%JDsMF_Hx|Ta93m} z?Jyp_q}rTpy==r{Ocwd5?>TRaYn=_cJN7g(Ev_-y#;CBtFkq>thhs|bxplhvQJUux z9)yT2iv69lp}TbN@^YsRy6I8BhN}^jt>)Wt1DjaWbs3$GTIMOuH6}{8ON+vaD~#ZC z7Fm7Y7%D$~`N>A^s#U77JxjHw9IwhFq4Q-uvAet5!ph2Kiq%1jNlE6KZ`)0uO$EL4 z+>x76nAX06tdCp*vt)N_YTJGg&e`7X2{ioT)qwt^C$QbWUC{|~rL@5Q3F1I0Yu$Bv zWqhS>C(Z`RxaZeeUG%HoJ=$&6E8*$K9eU0zVv=0XahYU~oKAV6C%o(ede8lW(Szr0 zOl*CDhzXEj4~Oh)p0KNvx&HkD*LB}T+T1(gFXz_Oqp9K_s>06lb=f%my7M-u>g_M+ zNyK_tOzwjCt&-!j8WJ`Wjd|4%(QqYv+9%{%c+*ebqnd%k<~SW*d&{(D&Gbf$7&pnc z=M=Kwc%{K>o}D^>I6&^zo*%HeaI(vWYVhSr`SLpfY(9;-c)(P!Duz(n#xJD+?zbVz zu^v(3QbfP!JT}{XcYQiJM(???QSLY6CjX|mKid(kJA3FJ2t~heKY!@nB_bM*gj!nf zFRaW88*+*Ibq*ults(q7O!uaAf>wi1+DZg$KzHQI)>Y0ENp~RPt?ifv|Je@{F?b!X z+gpF<$&oZu?9iIiN&h>w(PA#sWMu0FyGxUSKHOvV>_ZZpK3n>&gq9o}NJOVJ9=i`HC z>jDv&uFN1&BxoGxZA|Uyx_YMQ`2b79(a&q$N)WdDG;Fy}a zjApL1vNAf*kGLvW8ZpH&3wEIa&Pw~NqdV2~y=3*C8PJP?>Ql8Jvxz-{So?2w9);xm2dnLVk{roYy`1wI25W4JP?RI81O-*Jkf;`jg>6(O&uPPC2 zGw*2e0Vn?GW8zw|^8lTzVPw=-(F{@~3qdd}iX)-vV`#xea}zt}v3II|nwRFhTfV3! zY*>o#u%CaCzYDR+(q{prHapTsnrJiGc{a`pIrASQPe|ZPVO~>0>X|nRJ|K6(`#m#3 zo1Pw=sfW*#qQdT+RN34ZG>cuM5hw@W3~HP5G_SaRT+93^&1;9m!|!y7G?Nwl)@w>Y zjpbzF>!bQ!ACI8Ml)5RRn~HpL(%Z%l(I=M%*&&-zqjwoQdYz^xsUQ{5f6Rta0q5!~xDj60$%3*>$Fn zxefe(M~gUIRKT@AR4D!5`5Af~^{MwrNWQ+m)gZT658^QPGaS#Gzeg$Z)-SCBf9QXA z3g{OLc4Ylc;!vzp7X;hfy{`x7X)VDC5#pXu=`Qgl9&pg^yD{WX6H%9 z?1<0$R5-80@c@Tc6!yNm>cMSoqvklF72Q{nCo+o zJG`Q#smX-zOT;v(lbZF5IM(QTCRl6as1^CkoU?KhWdb5SN-!&LUR|eIK=C$c=iBY! zK4bp|RC9NSzLE2~Da3ih0&TSWPxcbCm-FBk0;lT6qjp>qA{viZ=fb6ohb)+_Uf`;# zx=B|x;d1^MOCr(}(?Md3g=2HDfaoU-Slj*{K}DHeqdd_kd`*j5K~7KK0PkF*2aDOv z{Tp|WOo---R|d2+qmW+F?;-;sz63r#D-uh`w=;c1M4xOKIl_PIjVRtVRVfWkX63Ok zCR#LTJH5jS`^&!+Vl%)4#33(C{12MM@PQ#&1_sCY>dN2*tu4Wr3nuPggQ<{jW@F$I zbRk#so_~BO(uTSve*VV9{O+9HT5=M4g_T0TGbn5Muv1AJ({<+zPP^?xHOR7ZZuG$evJ&80|`ap*!J?{ zV-Khh*m9q;|2t8Q!*(5{!ns36p&;!j6csttBAf4n`@zW>P!{#!?c2qJCFO(KGR{_+ z8`;Y5kVK58gs-_A37m~XHLSU6Cgs&v>D#>_y&~cD zu7b~Tx)JIL{--`X;LUhM^h17_(A211Tp3+W2*gQ*SD-ZADaOF8xvz;yb9Bs?4&Orp ze)0@+UVE-l0R~k8p87Xy^DcEs=W;9>*OC`Iws}QE@7w+#a zWqT!~fL;iSF7ZqwBOSkJ6GHW?tl(0LMO=Lu!IYOw?1j=NsZw-j+lMX}Cr+rOl0A(Q{^Blrn$_GVL9=U}|aACt; z@x6II8f#mtE~(00EFJt=mM7SeT!R0d{aYEOEZU-vIinhVq81ky2O8{x-v1Xb#X~|g z%i)+Lx3cb3*lWD3B^pS+;vXy$Nx3&W7xj6wKzPK3Y}n)Y@_CL?#jYkb&u&sOHGwWO zwXB>b-XX;7WT@`oSZ7vIt^eyYu!@pp0moJNzn+z>Q{L+Ml60;ByMSIs|@Y_H;K3Sc^#xC255tN!;PG*0sh6Qg!4pQd`x_k zVL0qOXa{E0-|mB?$7@$tN>D6vOvaPZwvihWI4V*Jkb=rEA$=ODzjPNPGVl`ibfK6n zdg+m6FOur(68(UB0md(MGY(-~BFFa2XU@8%tYbKcWS*n2KF~IbLnTGqBYj z1Re@ssZRATj`@Csp=`-@Yi$8T$Mb22T@^itL5G-(lD`HB2QMxsZur-{8hrz#5L9MB zLEo^}x!Yj9?v2MDtrQ~!0{*NG7KGxcgTKBp#>-&9LnZ1toBY?OF>w3!f9eYP-*$4C z+3c@ISSK{BQbD{-0O;|9SBA%buBR%{47TqY1jd=o4At zSa)h^zaPtEWYDcjVz8JT<`QX&=P*GK-3X*rH0XpM*42Idfu+0B($@mLB`+kbvVnNi zJrc&8>G@zR#&VV&w%f4fB{;Wld1(0}i%qtd*MWZhDgHOpptX3wp0C^nmXYH$R9UVY zGh%_$H;|}_`W1?wzrnU#3@R^TW2Vr=3lMOv4O&HK7$Ytf3v^T+#HQ7@zCvB48@KQE ze3?~@2?Y?Klz<2xw;P6?`%~DQjZ4W8RU%H-s-dz=RyQR%Thw|Ke`Y}c7TnovyOD`Y zR_;WZuu(9~uU*z{`=x)Az`Z;L4GB#}IJZIL^Fa0p*yDSuFC1=ALCphxD3_ zOhM#ahVI6D-72r-hpE1Ma~XH*W=iRgrbN0s{j|!vzX)q=(;)pM;6IRn`Ift8-ERBf zv+*9qq?6AT_HgZD>e}n59L~5ry@J=Y!{h?Y!B;fcCqqBw7Lx@RuQrv~^l!h6_Ci1+ zH6GF+DR_mTf>PF5`B)FbFdgj#h40CHfA7wY@Z}Jao$k@&%`+wsyvKo+^r$`9-#Qo$ zo2~Y65?w(HydPU1WG$Y37;G*Zim}j+_8fcsI6e#-Wk%MA=Fr`NnY8LLEsB!LwUdG{ zpJSaKdrWoHI+|{!ebIR|40h=64+j>LW1g-AGQ&Mig;fd^nG7-*OWvp6gW>qZ@&64Q5sg#zq^J7g^@J_B`~> zJ;-1r#SQ7yjbBjRrgQNexmXWY}5s_Pc>Q`a6C=m+58*=S_w@s^ashoa1{W9MMsF zbyI(+iKMOOJ83*0m`xE@H-fD=Q#n|Olkk%B&Ij5wzgAxRoVXzi?k{e1Vxmchq1e6R z)JxpjQTBnXA9`^~anpIg+d=C|d_usR6Mj9Cc!d00kM7H_VkyfuVM5;B$wvO(_6EP(m?!{4$rg_;vXyq-qfQ-ofO-I+Mtsn zyY=Lgh&oh|^1V+?GK{s9)LBS#n+|^!7>P({8!8B~JXBc=PaF$dI`y34Aq%1h`__ew z=CqCa>qqbFadSs;})SJ8}X?x-yZ>#ap({k+YimFrXT1uc~L3Ga@j(G0fPjBq*Jy zZYl^D;^h3;7j2tsui|WvM|&b#Elt>~LOt>wL^9YTAg<|Z&gUl_3<-rpr41K|U1P0o zOh&8btF+2A<)OQg$l5eC@{z`WTbvUgTp^H~%%dwQ@-uq1?gUlZoT%+cNHOSbbXDUK z6T)hlZYP^mbN=#@_~T#TUpo3Ooy{FKyFur8DID=O$JuhGxfy5q{4rncjZfnUW%T+r zF9$VJCo48P`z_x8mS$`4>ufm;8D;m(+s7>xyv5(I$4tBIL0W{B9B@@%{q}azB{15c zGVd{J!P7W6A+XGq4e!CwMp^`QFe|FR{(++_AcgsMG8^MZB$t(gRB0OF*N>Ckgmm?1?Z(9~K z4xz9p?@Ldd?lKZ-=n$poXi9nCFhUFe(@=z{Hoa8bu-bpEjD4^@BC&Wv=3Rr=sjYc& z(0oHYAF^K35Z$r=HKSs7i$se`K zE` zn^5Z7sz2t*Ui5N6oCyF7z2kYCfxzAS2_!iws908hcWp0?Z&E6mm0@cCpSnB$&k_1h z&=nh#&&ghT>CAg^!m#%rerodt*S_5BjLw(nRrYu5apxs}($!9SK=dyo0S`j`f0hK0 zt;S6lGxv`NT$ty^Aco3l7;xh>HAQJOYu3*L!i$NI&l0MtbMZ> z+A9&DCdBuW|(n2&#Q?#71ZO&LvF!z8!_Sp8D(m4$b`F1B0ykuO-1xJFIe9S@zt97X(N404GR?8R5jG)X)(APmUbTYzpI_~0)ivm7t}9k2lki|r+q0S_ z8@h*({N^X+2P?+C?B>vQ84bK&WV0RwAhQpVM%u5d=B!t$w90YouWBaDejYB)QU$@f ztgKg2q(3E8Y=rWaC$>HzTYU;jb5apP!13vdq!ZUHFpj9-HtH9hySw&ecf)rErj^WKWu;@|U4D6*>~VecZN3?# za9Cd6T6~o4Qqk(|u90l2RYOTXhtMGQVMKaF7->L^+Ih@KWJT!x2huJWB&mR($13lr z&?nEYCdcpF1SZE_ulf7B@!lP*T%v3(3Cqbx6&Cly6eqN8i=gNWipf@nlw54_R~gX{ zTQ6^0c3ZZZk-1w#6uUo1Kp(2dC);i1!D}dA-{}t>9GTD|X7(q;n@_aunCR2}?!hMN zSG8H_nB_SabbuEaW}oQ41&vn#ul)kzW{W6kBqa~R6=U)WeQq)hE*`;-F)(<`9qEmu z&Ha1?>Aauy9==#`L3G`Ke`vi7I+0TnQye~IYV=}O?}w6fSo0LG4bN4x1`p@a0tEz& zS(Rs7XK!rGhaamjygbc2Xs0U+LrZv)bc_n-gMkpvPoCk6O`o0)_AFbj*3~~V*DqUs zXWzj}!SPA?eJcFp2m260R$`8TjKXNgxp@D$3adZeH&*N+?WO(?%NXLp6P-y->K}=i zEX(rGv5WqMlD@Fdh~#YH(hJ|XZb3^)TsgvqeW;T%|Mdc7je?%tAEW*8t6%pJxan5h z?=_p$f->_J8CHXSn@^zKZ&dte7jvkN1Y-2vO`lvONL9396YZ*0Ar(fdH)VwO>}JliCX zB?qzoTvCvnvkQlJ(r_rxSnNkolFEekJDsQI3 z`hglo?ZpJiNrD5j>1S3SFEBC^bmUr5yDg_}=qJ_>&oCA>muZrzBuc{}1l-pT!@bl>FTi{xwd$EH_mHYvKGa~b2qjZ z#c@mti~16b#kliEeWUC{7D^jUPnCufC*;$AuO^G*tMGjEd5tdlQ}v{*$#1H**>m*D zcK`U8I@poV)3YzWHEl!{_*R0Pw5*WKK~R*Gj8Q!d8Xk^lcx}R!KBnWu+;l|T7ln_husQ+A-5BGai~T#U+`hpmT=e-eayxO8 zQZiuCzn^*2)?#e5e22^+^@@hl^=<9UVn2UB)mYL3E8piqF#bs3y?O!>W)ve!e9r|( z5nSNhoUn!^zKewd88>Z|)!eXVswtkYUbbg=$QRS?F?loVn~vFt@M!9u3Gx2R>d9r; z$)8fl^@g>-hXh|9<)BE;h?pr-6W#2sVDr&R#~F?P0JaUz zps?+I(sL+@wnk%_mFkX7uFCa>*Cn5#kf-hO-=5!IY^eO=hL{I8?yHD!mTf&*_={DQ zrd;)5#2kLltzIK+j+Hk%54E_B_?i*=lkl@llN7F;+d`+|k=8}Z)%TKi8UUsn1<>o^NyFLiAbOkA}0#v=Tk z!k=(MStr(f3Q~)t9Snrt)w^9R9AXmviR-~Cz{Hypj)mYeK)Sg z8d4M?J^RtKOIs^xVy6cmi_X}|G=XHvsfp*DE#%9q)w8pjoc4=7J2}T)Yd^;2UJ$pZ zDDVvMdI}#8np;}h5j5U&PqL*{nN5PcICt&z=M4TY*4{fB?)O_8P9lO3B6<&kNc7%C zqC^i8C3=ruMj1Vb-g_saOhoT}^xlcisAJR_j5g{!zQ5l&XFczGo@br4-e>-?EQ39t zd*Aoo``XvO?jY0QgRh~6)maE-;o&y#&)@B(E>4NX0GP!@3qpWR-m@CfuyiNRj2ZFH znKD7t>w2O`zfxa}_Xh=9{WK2Ku7i6 z&!pZ2#Nk;Hvwcgq%i3XH1$u_L0RcWmPrW^QPDM53b6#qBciY;a_a^i{!v+2tLg(wu zg;OdHhIFl2%AfV-Mi2yAyimAT|0h;;vF(wS9;zH_Mo^XiOr6Cb=l;ea$;S~T<_BD& z<%d1F)x@9qCuXMQ6LZ5wi3YHjR=+ksBUaOWrDhN$n2;Zy~h%ZdY0a zAqj+|K8FiveF=F5g{B<`w5mgiUgJWH=Di<*gQKWlmI13I~PAJ%Nayd3jhSvUiQLx*xG0X4$#m`C4r&3D~Bp zK*8=s@?$0)%H`NEUq0A(3o-2Z(UHuiqaZ8W8#-ogW;VXK*pa()DcSl3j`%S7l z6Z-M})xx(uOzfAgT^eG^Uk5GyfKgAq@Q?yx-Fd2u+aBgDT9*$Q!)5lij(XtwEw$w# z*_xs>Ob*9;KgsODY@O-v+~u%nmT$K6k>#w60r~lk>56-eJENGvB)Ue}6Y|yC9uBX_ z&S?tHE?;tWrd1n@^X^6;%39HJe~3XvJ$QssqGWhOE!oV8UECVjG^yzAbV3cyGNqEY z9L>}`x<@6u?@jIRXM6ZVb!ZEGWijas*H@r1dTi;0c#jKP5r1djO0>QD*V60bb%dNw zrt9~0>IW<&a+0QgDj8P}$yv43SIfoJ&FoZ+MD#*-tcoUYh3oRn$F;dab#L(&wYrTv zp9KiX_vEMmHt(7S!hvmnE~f)xBN&f)+?g<4Ut=~Sn)&=Ra> zxkqahQ~lF=Q^H0c5N6Ka-nFRpL7U2>SBD|a z;bomoMHA#F7|d?X@QS-AGJ%9==av(0*ZR)(O9I89;GP=hgyZhp#RA zbgALlU0beJE}0%FxTSeXh5I$rvnv-`8a*;@e%4HGS0-C5S^0J9u#WpPSLyLT)+CGq z5Xece0(G?SW!4A$L$)WR5hQ!q^#Ri~r_d*hd~ly{L{_y}z^kF;I8HBanvOX0K!1 zNIa8bny5SE_ZVzzYr6{PK9CTgBT8I`5RK2t*=ZCo)S`}W!giS1&htTvVp&#}QH13s zAC@bbt`i{~?9^p+qI)$k8^Dx~A`lyFO-6cGh~~J(xa+&Dxunlsd9lvlytu3KIs|A= z3fz8YAEjyWtg!xDK-TR8yeMD1JrF30=;`RA9`PZnYLna5kOvBj{Nxu&r z3tx>G-vkbY6$_8`G*#w^1NP_C{uCEGTTPGb`^Dv?ct?#P6WkH=U5bF}kgj;P z)R0e2D%@Mc)xCz0l91nOA#T9jO_Le=WjdRT_+QcYtU=GwkqfQC0NtMGIypP@)bn-I zEYv!<4?0T3eleKQv?7kQKtjg{XHo=xt0AN4jO4-XqU3dJpZV=k&Mitnnt{j3)5~kV z*}Wcyd4J??GNaE0?4On}&#d z^xOJpL;p!)enY^%CcpA3|FkRXWimYuev}MxLE;|42Hillv z{r6eT|J`)S?iU6+gS#WY|0Lgj<>g`HJngoqUUL-M-q{1y)oQE~c&xl3wP5CA!uAx^Eh=vqUTbA}y$9xBCdclu+ODdoeB?wVdi~(q zY1IcXTexS8-=e;-@VV*CU*oFl2L+ONy=jqQnJ$z z-C9oND4XbCGbC^B_`94!(hpKwdQEke7sk*}@v7MItL+bIB}Si)r*N+=uY81O#(A4< zb|zM?A)ww2zJwEeV8gQGoxOVgLswMdQ7X4Pb9DOG$P*p2$It{&0jWpUV8+#Qd z|6u7DXRbxLM}OKNzp&9zWK3ex+PQ!uZI{Jz;?FrJxwCUFhDn{zd=*B81W?LcOd^y- zQyU>GdtVn9!=4hDD!A~Cu(LCAm@21@=^JZZxWI%J4lw-o_N_rhZY{rVx45(1Jg+Vt zC*%xOSz+gzpC-ruMg?r?1PL9koEMoYm4BUhA1n$M=U%a3t8 z0$xkmmmZim8_#P)`!|20D+RoYLdSFcHDZLga;a%QAlg%fX25vfos^5^_yuSIRN;KZ zo3B4oAnC+xg+n;5J~*(P11K^1p&?*bIjq|j_oX^M>=`_-tS0R_u3iwK%6ZN6tlDs8 z8@P$Ap3uW+j$KZl(Z%NSaSS8r*h*`Ry)6(o`(G8)FN7>^2u4uPV@2Y58-WT7`!`Ox z_+S4#6|OsfnL>GhvFAiq4T3#tcWXoYubmpkZcf3)gI(D|2{jjvddgZCCg)D+>M7OMw|Fn|@D>I~t8Dtn z5?%FmSAIK*%C2atnzl2tD8pg^9z7aMNi@AFmZIFP_Pn9Oi@u$K(WVD_Zam8)_W7ud45EG|< z_^?ev?_laIEObfXKDa!P{rpItK1%Nooa*TF=e}v4G7(rTxuw5bJ2s1{?1P;BYw_lV zlKc|SNV}NQyfZCPR`5PsHDUwBA-`Qbd4DC^Esdef0SF?$NsD?LVMdICv_l(R7i z%#X~~C;}~Zr8`s`=s+cJ(>6k+^TqpiU@y@Hlb2mM9?n7Ze@w~6yKT>FlyiqYS6Sh> zLcMgpNW!S($H`(XQ6NFr}d=VYsEL)jKH5P;sYpq({MDH-mD%G)9LIEsq!rNC3IS)d|7A zU2R<5H9f8GmfEEO>O1FRNTk63t1`e^Wj+5+sN(r2N!1NJHhT7sXU1XU=wM94%Z)SV z&R0@dmZ6x|FVk+%1{I?kv4bQ&4_(}qp@umA{iJ3SPeT^rA7NX*xSuBkdTeS#%3Aj} zQRs=Y=v&eB$*G=`OUj&P-yQN&PO;6>v1MvkI>WY%MuczMY6kiUSwfC;s$jJ$d+ei( zIF-do3y1Z(Om%6E&8KasOQ>KHZN@byvF=dQcHG;2n*)iuS;<3Mq|q^ngqPpAmr{Ph zQ^c>14weLFbh?f7v7i4PW z9MJa(r1a=?kQ?-fT_R<>*^)=BVSmA#MZ5c;^45S2IcG<6iv(L&y2XA}33Lu&02Ra< zq!^N~)QrFcP1RSSwbMGSovIfR)zL#M;r)z zh3EsQw+wIA!RhAyVozEbA3U2x_f_xLkeE@iQYuWWa*`{Xwi{0lxJ+9XPO4w>D%9j58;dY7rNomKpJnayT5z4^53@?!{PR?9h_p%m5h0o2^g&xI1)Z$p z6C{r(Ykzqc=1CHny2Xf*%GdUGBqY*_F>zRVWgXl;f;?TTYmst8iwiLH`!r zZK`k(Y7?rzrLKk{&a7>c@UdnZP+@-ol4TU|2j)c&1!nVl4Y4*o-7AzejdaA8{5s4i z?jYUwf+)6q7iPE#+3V1Kgi}vy+~H$eA20>&w60xs1hz>OPouxN{W-W_1nmT`0M_1N zYfQna%zB>E0wsdB1r03?rw?bNnGiyIMI~+(F9j%Z?eJ(Q+^$CCxU!ukkKJ6R?7mjw ze{G+b3S2hn+5NI~+Ewq0=M*_C>lm7p-D@AY?Xt44&&dMn@5Go7(;h5Fvk(~y_o=l! zJ3^7X;Ec=uye)pI`ZJVy`Sf&m9XMH}`Sd(|fLUiN%eNblizaMcpl|q4qo#2UD*xI7Bqh+52Z_)4mT3v_kA3 zw;b~4c66Ma06l`5ibHzWtM}g&=U-i|z~GHI)W0d$h?lsxmZ8pT&W$ai4-R9mxS4#| zoV>!jbkR+%^@Gno^Pxj9yK0SOcg(#lwijphafu{~JM-$74~B%gVU>nr(2-@aL-Lhv zKwHm3^vg}9F7;lHSaVh6cj(1MGqK_J{(#ZP3mEENWNYU)I4X;Qn zbd+T5i&=3Q3%dVuLOHgAt|hbNuW`kDg2%(uyVJ+Z1LDZ`NFqFQElO(3(&Bs*FT$K$-$i$$&Y%R2$fpxCl>lM!d=TEnUIRJ&-5`_XZBp$?H zdDFxhBlhQboE5Hm$#W1l>#Pncg2?vb3)!?Q+8ktuU54l^aKTRKEgzFxMfwheO_99&cG#fjz9v{*8)o6{9phx0e>5>a-4iYD<$+e#ny<7(C<_7} zk8N~e51AQ!W$81xLR@c1-XNp;?rtJz5+9rMu$(Sibx3mif1sp##59_4x-K4$c@ywY<#e@ zRJV~uIDS0TYWS-w0k14d&-zE9YssZ-3gItb*-|0}>`nY{6jhQUyUs;@dNRdU28NYmDw!G6 zUq(p1GkdWUhCz3@)boTxWKo3s#iTqzwGnQGvG%&o(FwsEm?Np3`^VJeLb$(FO$wI$ zL|hy>c}-1SbW$lksGpe4UF;;1R|nY-~JcF@d0F_?5s|d8N~F zjNES*V6`1SHGbfD#dtZSf+lH`7_-7?&$%!Os^%#^BGCu)Y6A{tEPAZcOSl78mI2@< z5&%r3i&XmCM{IgQTB*59@qJMd(e0;WMja*O0fC(#Q>(*!rb6~#_LYudQ5i>iB|O(6 zf@&R@Ej5P^ZyUV_DOs*f>O|&_@^TE1z8}3jq}>=OC8smi0m$#YVJJV_>WrKJ@?Of7 zOQ*Wf6looqaYBsPAdqWLMUFGFQJm6}Ffb5(NRbKce`ev1)9iaC;99IzebQk$M{Usq znLuZ#PLS(;hH2Br_B8urH}7{BTTvyzT{+v_sH%t{;@S~%kE5TC@mn00H#gkUkJC>0 zzBt|{h;O=J)HvP7_`P)5lcfc&l>+-6WVdIrs$@ z3n5q$l}!q)%tGs+i)s;o`>vv|<_`~XOK`Y%_P+f(*;E;{Y2s3LuS|2Jqz6 z@eA}geNgW6NfqeAH<8s53FWP@N>BV^z=ST`zb~$s#h`0=0g?3eNggG@iA2pw-MAT> z(asiAw`{O+wfm%=R&S;IU3ZbqEHA-gwEHM9&Yk7im#ks*0?hmnwJLgJHs*E3dfcQA zr9X!V0Eh@S%oFWS+3^GWnZ^zcQ@&e?Z0~(5Y`WkPHIP(P8#=`;6pt##KOWn39>Z8f zc?>=@@Ig?Q7A6!o1~nuP=dsmimUFb8@vGWjn*T+iH#>aG|2}iLVTGUJf*VNymfxi| z#Z`|4&+#r3io?b4P`c5L^Y&WHtPb1cKk=VcnZAF|TQ>27AnXc2J}S?i~TJHHBA1G6CpXei~O z02O^l2l~8h=VD7lcP3_Gr!h>?Ik{~*epigKalZ|j@0Q}Yc^OhFZaAwNuXEZqhUdyG z&=^l#Imv&I$u$O^o}Q`!3sPApCfZn;HvWSPAT1}y&2I5jAmdp`mz1iZWRx;HdbfKX zl@|94Mr@7FYPHt@O+@y7pB~Xl1zLHd+0rU#03uE_(<+^>zGi%Bl4l|}bV-fR9ZVZJ z#|Do+_}S2c;{|-O2hWfnYOF6hL#lu&=@=Nm|L(fMwd+>NEy^I>g?70OBD<`u7jhCp z^V{d;kI|hW2bVF-IC-V>e|I(gmdd<1wgqkfLFUl?g#XL^$^Q|OSO4j?)!UraKEKo1 z>t)ru$fzBEBAW37V`*;7jXc{dLClT1GQoKBu{-t^LsI@rPnI_V<~Gt>;pAaM!by6IdX|!Z|-s z)Kd)&&+L3kBLQtII2+d9cpeTNLDlsU$xY7AW3(`!J%$ev&HC*8teaj~zgaFC$BFy{ zo0PkT!Flv%-gR#9Xg7KgsY=3E3+hM5*N;ASbtZ1UdT$+*F#9(u%f888Zal%iINYc0 z(r~}I;4OEk{u!U2#0_2>@SH&$0^YCd7SLpjNgE(SU<>ECpr|(*8lZMQBat@$vgTCp zHr4Qewa-c$=V=VR`OJ$Mv8t^30l(EK@d8Sl`oURmv{l_x=vFq*o2dyoRaJuJEW5uc z*_M543?CKfCx&=Mo<%(5NC6)ams<^odf%j-88kIDZSUHG8tWo)Lwv_<=(Y$OHXqIu zU@Ex)(HW=gJ(}NQ@vOqQPH=L!=?qI34=`(IG`&x35_t8EO`9-o zf3kQXd1p*z(I*VKUTJ>q8kA7!j9~*CdnwVGpH~(Mz&dxTs=8X(X^&&`f?p|(t$f&v zG-vx5^~-Ig+ygPBGORW$xcSMYMu0=M8pWbYSO-h-))sPn|C`X4V606jrZZ(_U0V0? zQ1;^Ja5}DwGMdZHN~x>GPe!nBVt8At@iFQnX9|iC`P5+TRKqS6((-oygt7u1LO1X%F(y4k*zx zdW6H~DxRk`hO_T&B?#~bywoBXDUd_0b|Lxj#XAK%KkC zc+i#M>zabG*KfMD5<`d}n(Mu0GOW=WzQU?YtVMZo z+Yh)JU`L8Hn(sZSVW!WfJ*Y7SST7hmUyyNcTBPAODz@dHGVt z^m!^esA$Zh2g==&6>`+(QG111*GCKWyQL=(HA)wVpYaJ{f&HyKudaU$$7clekk)y_ zoHE;dL#71FYOyVDo6Iwp-9yju-KSIOohdW(W+GNW|sqNG_DViuzQ&}gww;>^2gEI)Aso&DRJ;{cis_iD-=2L{kDRoDeO(qx-@t@&K~sgD;sYe!-WUwme-Arn=43 z1#fNAnIBtJc{_2XNZw@vl16Iyzc}0X(1hf*09i$0Ib{R`ji~wKcob6x2A$ zyC9eDpP62Wn=;hRhgAwYd8m>CB+DR_2x6_nw;tU4hSaU#b{TGM&O{IAaKPt&;E{&rWUVrkbLQcy&?1OJBp_CTGW+I6^XPs>9(Xj9t;d{ z&(;~&WD@WgG&*+qpP%iqNA;=FXxM4m`qD@KJW@}=d%F0#-^-%AKDX(%*}a% zv|h~ooV_pmIAnF)P*^hDI;rr5_sU;hOLrWeD4(z%@v`D9y1g+ve zsRC32-Yc;46zHdICCjtZp*H~*Tr9OgnM<;V1?&VKN1i!5GWKG2d5f-%RDkd22!EBb zY|%mJuI55Ux$_!QRcP{g-@42I#^N5UyD8=Ux)X73Df;OULX(LniP*kNDOrdlS2qjK zh-B&T20Xx4QDn&lr@l3Sbbpn0*$N14nDDvPzik^+aC{WZ9(l2kzQUtlgjV-UZ~0S` zFq}}v)5e^ti%T-5;HXbF7#=fmet3f~GCl^BMl((aN(47jzJ6n6X|Bg6U`=r$j*|e% zhGc+QxqgY4I&5d$9SZbzPk+#gkx!f+S&J1M0s^C$n6s^BMDPhlqpUzH_)?~L%NcWe z&xA8M+A`QVuT%GbJvzocZutC385Rrp&CV_V3X|XYm&FCAFL0$C+#?WwG&I$}(e)y^ zza9=sTf>u@z(e?Zygy~D|J9^QeWBd@LarXt@W0TMSh@q|dR zlN`wv32X3%^Hv8A4r&HWnqc!PSkdkA1e!YXO7;?OjL)w8a)JW%829Vf`|R4xpA)}$ zyu9p^0og}}RA@Oiws+L&6g?&;F_q7e`Km#C^;IeI)e1y%3EFezQwUoEF37s?9rJDV zUekUP&~Pb8b7j@Q$&IHa;Qq?cYm9f%prYE6&M9tAthYSa%3ElncfiQY_#>W?Y+%Q* z+r3&Hr~fS@KVw?*dLUya1uH||eFoiPBGUAGWVsJ=q9c|S|K6+&BLw;8%D^i_qiYN+ zD9+bz!K9mS?$XsSrrtdkEf`u6` zi)co3o!D5DSIp7OqFjT>1+UHbXH-vmKcd~MEt=i|ygATECngxc>v8Bsz+G!3iG`n? zUsf9vDd*QKYe?Bh(|A}nRz{I>K&d8K(Ac9bIQD8nUHQ`)p2)H4__u&HMcV5N zj3M)Yp|B}xpBo4pATR^Ptw@x{kZBBizD@)Egm1k8}LfP;HG9}@sT}JbHlh|k_ zSvkBk{<}^Q-_|o~a!QF7Kj3ggJ#s8#2^eW};`*g|ktHT%Z)5O7Wb&aCHHJai)Q0zo zHP}T>PkUs>!%Eu6%F^PqFiZKF#;jiugvBzR@~^6_f?y9zhO7LKP=b3T?4n&pRh7=d zPtr%3|L+`8DnD=Mo+(Ckfj@I$LK5xuv`ys4LY9!JPZ}}JZ!`2qz~v4?Echu&WcB5ye+TWJ%=Zl@uk`^qrm{hk$2{1?WscXsLL9JqE5OEj%85zmu}!w@0Fcac38pmE9%+I=FhS?W$UeuqQdxvY2A#3Y z)@O#iLTDr8HXJPjn^(Z2cdaF62_tv$E+W%1kD51w0A}4bPFyuT7|n z&XD|+Mib<%V{3eSquU_L9r?iKrJDTCD>?F8v@TxD;1v1Q{Pcv1oa2)S(pS$ZNTs~b z6i7kZSUy^N!my2$h)<;AH}2P`Gd0Gu*UgCPHSTq%X4#D%@@lPk08{9^jTTpR@%L+s zsVlL_F7J~i%Lh+1;E?`a;Uno_ReHM}(izZSz^?bmPs4!2ipZUIdqM1o@OBG4$!j-3 zN#@yxV}5sd+OkaMi0fs=3Z>Cp05%Q|{VTr6{<)oDeH8hMmsr*xeNiE=8)_HTtLwPS z?k|ce26WYer7U^$F#-6Ti^uew1_<8PfvAv%rP870RAf|8e$QS53sZVUXwk49ifb>y zM(EW1pndNA`NmxDcfURAnez{~Q7OnC+qU;orj&cLEE-?5B^<5dij%Jyw7u_m0u;lG zz>v~ppr#m-(YJv=;u9S&+p+RJ!PD$BJubNCuF`1rPCwc}g!0XR_#r+PC&5x>>(;i{ z^=M^W6jcrk7NfI`uwL6m&pf8okBgf`v=Sfq#z>Z~^oL{BS9APM=`9Z0zg?zx77_RP z=^Ab9^Wjv(`H%=-ydsT#(eKBEn(BNKk3!RWtLh;8l;Q;Z9A n=ILqb!EH!8LBn8 zAb7b`D2@u5%R*tF-)+Ne?Sw}VzJSs5=_f%iQW`V)_e{c`){QTIm4S~+I{otPR~W(P z@VWGQFW|5VhWQS5$#NbjYYDej$N$0iyPVd7Y+Bjg*a~E>Ro_ejfd|#sE~a$K(3D2K zzwOI`$w!$;r@5p74?&o-tf05&sT_)ZK4d`rP zy?QQ)%=3H^^)?3pljjWj05gTlg#Q6;z^_hXo9m7Q-TnWC7U&xESGv0aDlHCy=QU$= zlPqn*@1urf?Cd47-XaPP94Fexa6G4z(K&@%&dwM6rM~G6H+}nFJ&=Qsw*G-hN1mjS z;_s~F^cT_K=A3FlU;S#`Ad*Y4QH0( zPST%pU+3ux!WV=p(tghwAzSj&-~Ee|*U4Y=;Q2nr^PKyBr`>9Q^DFGB`ew$T=Deu! z(BJY?(MuLHY;`x@MB<3H?y{#@>B4`?O|#ji=8qFVp<;&!@7P6{2MWhbnqzD1)`T{w zyk)?t+|T4#fSW<*Y$+yH>+orLjx`ku*q&jI#*5%ax3sv_;x4OVhYYI^_5*37I|%gA zD875$C>2B_&vM`GI|ELfdEN;0{4hl1U9+#wS@_`<+si5heQI^hu zo`Fky70Jrm$Wjzjbu8-{7_Z&5Lu;ENncJQrI_MMV&3L@|2f7cMPQ17pdR?DRII!P1 zz(=}oQI%D5&&aP&x#z7V{NR5bUc;oQbNA_Sa+&NK+_S^c4j$%n`J?(3L3&jS*cT3% ziVJZzg<5rL%3tXYl^eZ``~RPXX0-8y?PULpRliQKj0PzF^@3yH^T7V~`oF=}{~w`Y z_ngOn)Aasj#s6Ro;Qz-Tj*KE4sDj-kBRC^E$#+)V<3)wf!c6`HdV`K4?iQ`)S}5ZC zoD5gk?G4c;ZBqU-b&!z3t{}NH$08+VKkI;RHrZ)y z9N}@$CH5#qti7q`dlvF3EJqmR*!&sn>u|y_r!}V+Ri${0ILnRz|sC@*F^WhZ95Id;yh1338NT zr=7Fk4*huo0iJTXk~%E#q*h&f_<9>Y(xlx&+^!i@%lK{jf!)&#>OCk}V~q1TbjN&f zr{p8~tV+vPuRCZm|F{ABxiMxhBfkoi1GD__vZyX@~HF52g?}(S7n=eT{e{!SEtRrHdxKJj@WXEcAFwJLQNK-b&!_KR9APi(4e0qTG zL0#Im_iL$JXb|Yt7J%8caBe?5T+;Y%wuWso;a8>W7r;?F#~IYHxu!FH_>xYnXIZ(~ z<1~+2gn1T68NDHS9^RL3k)5&&Ew&{+9*Oh%e@RFuvhUpzlHH6(M-JS9#~fs2?kzov zZKzZt_M?)!(G9jVlLt46B*|-;*(!szM0jjdJZTi>^e_1{B4hpAC z1F2c>ZR}~$n91V5;2yd^T?Q?IcSmD)1b5fB=APnP=C9u#z0KL&@haIwc!Z=F_~b0Z zB8v80JmWU@-VgML=dVYo0uPb|Q8hw|(6Q@KOV~NUY7DF8dhm+cO3{38Zpw@XzKZ+qy7xHSI{H$ckxHD6YYnC1UwV0N@3^k28{Z$&pU~x+EKzLl zHCy1X7KQ!q#dWcr(b8LK0WMTt_ga5YSbX++

!>x=sc24;2 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 Nw@4gc23I%G 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 literal 0 HcmV?d00001 diff --git a/docs/contributing/test.md b/docs/contributing/test.md index 5b66ba78a4..3bbec68071 100644 --- a/docs/contributing/test.md +++ b/docs/contributing/test.md @@ -250,3 +250,4 @@ jobs can be triggered and re-ran by the Moby maintainers Congratulations, you have successfully completed the basics you need to understand the Moby test framework. +In the next section you'll [learn how to debug Docker daemon, running inside the development container](debug.md). diff --git a/hack/make/run b/hack/make/run index 1c433dd6a0..01c8954fc7 100644 --- a/hack/make/run +++ b/hack/make/run @@ -27,6 +27,11 @@ if [ -n "$DOCKER_PORT" ]; then listen_port="${ports[-1]}" fi +if [ -n "$DELVE_PORT" ]; then + IFS=':' read -r -a ports <<< "$DELVE_PORT" + delve_listen_port="${ports[-1]}" +fi + extra_params="$DOCKERD_ARGS" if [ "$DOCKER_REMAP_ROOT" ]; then extra_params="$extra_params --userns-remap $DOCKER_REMAP_ROOT" @@ -36,7 +41,7 @@ if [ -n "$DOCKER_EXPERIMENTAL" ]; then extra_params="$extra_params --experimental" fi -dockerd="dockerd" +dockerd="$(command -v dockerd)" socket=/var/run/docker.sock if [ -n "$DOCKER_ROOTLESS" ]; then user="unprivilegeduser" @@ -44,7 +49,6 @@ if [ -n "$DOCKER_ROOTLESS" ]; then # shellcheck disable=SC2174 mkdir -p -m 700 "/tmp/docker-${uid}" chown $user "/tmp/docker-${uid}" - dockerd="sudo -u $user -E XDG_RUNTIME_DIR=/tmp/docker-${uid} -E HOME=/home/${user} -- dockerd-rootless.sh" socket=/tmp/docker-${uid}/docker.sock fi @@ -55,6 +59,29 @@ args="--debug \ $storage_params \ $extra_params" +if [ -n "$DELVE_PORT" ]; then + dockerd="dlv --listen=0.0.0.0:$delve_listen_port \ + --headless=true \ + --log \ + --api-version=2 \ + --only-same-user=false \ + --check-go-version=false \ + --accept-multiclient \ + exec ${dockerd} --" +fi + echo "${dockerd} ${args}" -# shellcheck disable=SC2086 -exec "${dockerd}" ${args} + +if [ -n "$DOCKER_ROOTLESS" ]; then + # shellcheck disable=SC2068 + # shellcheck disable=SC2086 + exec sudo -u $user \ + -E DOCKERD="$dockerd" \ + -E XDG_RUNTIME_DIR=/tmp/docker-${uid} \ + -E XDG_CONFIG_HOME=/home/${user}/.config \ + -E HOME=/home/${user} \ + -- /go/src/github.com/docker/docker/contrib/dockerd-rootless.sh ${args} +else + # shellcheck disable=SC2086 + exec ${dockerd} ${args} +fi From 4573cd9c300db88fc6d0e4585c1ce91b7e113e71 Mon Sep 17 00:00:00 2001 From: Konrad Ponichtera Date: Fri, 6 May 2022 23:43:01 +0200 Subject: [PATCH 2/2] Improved readability of the run hack script Signed-off-by: Konrad Ponichtera --- contrib/dockerd-rootless.sh | 3 +- hack/make/run | 72 ++++++++++++++++++++----------------- 2 files changed, 41 insertions(+), 34 deletions(-) diff --git a/contrib/dockerd-rootless.sh b/contrib/dockerd-rootless.sh index 396bcfa982..4dde90dc27 100755 --- a/contrib/dockerd-rootless.sh +++ b/contrib/dockerd-rootless.sh @@ -130,7 +130,6 @@ else mount --rbind ${realpath_etc_ssl} /etc/ssl fi - # shellcheck disable=SC2068 # shellcheck disable=SC2086 - exec $dockerd $@ + exec $dockerd "$@" fi diff --git a/hack/make/run b/hack/make/run index 01c8954fc7..87fe6d06aa 100644 --- a/hack/make/run +++ b/hack/make/run @@ -8,6 +8,8 @@ if ! command -v dockerd &> /dev/null; then false fi +DOCKER_COMMAND="$(command -v dockerd)" + DOCKER_GRAPHDRIVER=${DOCKER_GRAPHDRIVER:-vfs} DOCKER_USERLANDPROXY=${DOCKER_USERLANDPROXY:-true} @@ -23,13 +25,11 @@ fi listen_port=2375 if [ -n "$DOCKER_PORT" ]; then - IFS=':' read -r -a ports <<< "$DOCKER_PORT" - listen_port="${ports[-1]}" + listen_port="${DOCKER_PORT##*:}" fi if [ -n "$DELVE_PORT" ]; then - IFS=':' read -r -a ports <<< "$DELVE_PORT" - delve_listen_port="${ports[-1]}" + delve_listen_port="${DELVE_PORT##*:}" fi extra_params="$DOCKERD_ARGS" @@ -41,7 +41,6 @@ if [ -n "$DOCKER_EXPERIMENTAL" ]; then extra_params="$extra_params --experimental" fi -dockerd="$(command -v dockerd)" socket=/var/run/docker.sock if [ -n "$DOCKER_ROOTLESS" ]; then user="unprivilegeduser" @@ -52,36 +51,45 @@ if [ -n "$DOCKER_ROOTLESS" ]; then socket=/tmp/docker-${uid}/docker.sock fi -args="--debug \ - --host "tcp://0.0.0.0:${listen_port}" --host "unix://${socket}" \ - --storage-driver "${DOCKER_GRAPHDRIVER}" \ - --userland-proxy="${DOCKER_USERLANDPROXY}" \ - $storage_params \ - $extra_params" +# shellcheck disable=SC2206 +args=( + --debug + --host="tcp://0.0.0.0:${listen_port}" + --host="unix://${socket}" + --storage-driver="${DOCKER_GRAPHDRIVER}" + --userland-proxy="${DOCKER_USERLANDPROXY}" + $storage_params + $extra_params +) + +dockerd=("$DOCKER_COMMAND") if [ -n "$DELVE_PORT" ]; then - dockerd="dlv --listen=0.0.0.0:$delve_listen_port \ - --headless=true \ - --log \ - --api-version=2 \ - --only-same-user=false \ - --check-go-version=false \ - --accept-multiclient \ - exec ${dockerd} --" + dockerd=( + dlv + --listen="0.0.0.0:$delve_listen_port" + --headless=true + --log + --api-version=2 + --only-same-user=false + --check-go-version=false + --accept-multiclient + exec "${dockerd[@]}" -- + ) fi -echo "${dockerd} ${args}" - if [ -n "$DOCKER_ROOTLESS" ]; then - # shellcheck disable=SC2068 - # shellcheck disable=SC2086 - exec sudo -u $user \ - -E DOCKERD="$dockerd" \ - -E XDG_RUNTIME_DIR=/tmp/docker-${uid} \ - -E XDG_CONFIG_HOME=/home/${user}/.config \ - -E HOME=/home/${user} \ - -- /go/src/github.com/docker/docker/contrib/dockerd-rootless.sh ${args} -else - # shellcheck disable=SC2086 - exec ${dockerd} ${args} + dockerd=( + sudo -u "$user" + -E DOCKERD="${dockerd[*]}" + -E XDG_RUNTIME_DIR="/tmp/docker-${uid}" + -E XDG_CONFIG_HOME="/home/${user}/.config" + -E HOME="/home/${user}" + -- + dockerd-rootless.sh + ) fi + +set -x +# shellcheck disable=SC2086 +exec "${dockerd[@]}" "${args[@]}"