1212 */
1313package com .formkiq .gradle .internal ;
1414
15+ import static com .formkiq .gradle .internal .Strings .*;
1516import java .io .ByteArrayOutputStream ;
1617import java .io .File ;
1718import java .io .IOException ;
@@ -54,7 +55,7 @@ public boolean exec(final Project project, final String workingDir, final List<S
5455
5556 if (workingDir != null ) {
5657 a .add ("--workdir" );
57- a .add (workingDir );
58+ a .add (formatToUnix ( workingDir ) );
5859 }
5960
6061 a .add (this .containerId );
@@ -108,17 +109,28 @@ public void execute(ExecSpec arg0) {
108109 * Pull Docker Image.
109110 *
110111 * @param project {@link Project}
112+ * @param extension {@link GraalvmNativeExtension}
111113 * @param imageVersion {@link String}
112114 * @param javaVersion {@link String}
113115 * @return boolean
114116 * @throws IOException IOException
115117 */
116- private boolean pullImage (final Project project , final String dockerImage ) throws IOException {
118+ private boolean pullImage (final Project project , final GraalvmNativeExtension extension ,
119+ final String dockerImage ) throws IOException {
117120 ExecResult result = project .exec (new Action <ExecSpec >() {
118121 @ Override
119122 public void execute (ExecSpec arg0 ) {
120123 arg0 .setCommandLine ("docker" );
121- arg0 .args (Arrays .asList ("pull" , dockerImage ));
124+
125+ List <String > args = new ArrayList <>();
126+ args .add ("pull" );
127+ if (extension .getPlatform () != null ) {
128+ args .add ("--platform" );
129+ args .add (extension .getPlatform ());
130+ }
131+
132+ args .add (dockerImage );
133+ arg0 .args (args );
122134 }
123135 });
124136 project .getLogger ().debug (result .toString ());
@@ -138,7 +150,7 @@ public boolean startImage(final Project project, final GraalvmNativeExtension ex
138150 final List <File > classPaths ) throws IOException {
139151
140152 String dockerImage = extension .getDockerImage ();
141- pullImage (project , dockerImage );
153+ pullImage (project , extension , dockerImage );
142154
143155 ByteArrayOutputStream so = new ByteArrayOutputStream ();
144156
@@ -151,11 +163,17 @@ public void execute(ExecSpec arg0) {
151163
152164 List <String > args = new ArrayList <>(Arrays .asList ("run" , "-d" ));
153165
154- classPaths .forEach (cp -> args .addAll (Arrays .asList ("-v" , cp + ":" + cp )));
166+ if (extension .getPlatform () != null ) {
167+ args .add ("--platform" );
168+ args .add (extension .getPlatform ());
169+ }
170+
171+ classPaths .forEach (
172+ cp -> args .addAll (Arrays .asList ("-v" , formatToUnix (cp ) + ":" + formatToUnix (cp ))));
155173
156174 if (extension .getReflectionConfig () != null ) {
157- args .addAll (Arrays .asList ("-v" ,
158- extension . getReflectionConfig () + ":" + extension .getReflectionConfig ()));
175+ args .addAll (Arrays .asList ("-v" , formatToUnix ( extension . getReflectionConfig ()) + ":"
176+ + formatToUnix ( extension .getReflectionConfig () )));
159177 }
160178
161179 try {
0 commit comments