From e61c20fed9f92c704505a5d92a0915d7defe8960 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 18 Jan 2023 00:56:07 +0400 Subject: [PATCH 1/5] fix(wasm-rs): use alpine linux as base image --- .../lib/defaults/build-strategies/wasm/rust/vm/Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/cli/src/lib/defaults/build-strategies/wasm/rust/vm/Dockerfile b/packages/cli/src/lib/defaults/build-strategies/wasm/rust/vm/Dockerfile index dfb2ba79e1..f6d80bebef 100644 --- a/packages/cli/src/lib/defaults/build-strategies/wasm/rust/vm/Dockerfile +++ b/packages/cli/src/lib/defaults/build-strategies/wasm/rust/vm/Dockerfile @@ -1,4 +1,4 @@ -FROM rust:1.65.0 as base +FROM rust:1.66-alpine as base # Install the wasm32 rust build target RUN rustup target add wasm32-unknown-unknown @@ -6,8 +6,7 @@ RUN rustup target add wasm32-unknown-unknown WORKDIR /build-deps # Install curl -RUN apt-get update -RUN apt-get -y install curl clang llvm build-essential +RUN apk add curl build-base pkgconfig openssl-dev bash # Install wasm-opt RUN curl -L https://github.com/WebAssembly/binaryen/releases/download/version_101/binaryen-version_101-x86_64-linux.tar.gz | tar -xz \ From 66a1e8c588e80e38b8e14c4a234322de6aed0219 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 18 Jan 2023 01:23:59 +0400 Subject: [PATCH 2/5] fix: docker build strategy for VM --- .../src/lib/build-strategies/strategies/DockerVMStrategy.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts b/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts index 779121b9c1..8a78cfd555 100644 --- a/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts +++ b/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts @@ -194,7 +194,7 @@ export class DockerVMBuildStrategy extends BuildStrategy { this._volumePaths.linkedPackages )}:/linked-packages`, cacheVolume, - `${CONFIGS[language].baseImage}:latest`, + `${CONFIGS[language].baseImage}:${process.arch}`, "/bin/bash", "--verbose", "/project/polywrap-build.sh", @@ -221,7 +221,7 @@ export class DockerVMBuildStrategy extends BuildStrategy { `${path.resolve( this._volumePaths.linkedPackages )}:/linked-packages`, - `${CONFIGS[language].baseImage}:latest`, + `${CONFIGS[language].baseImage}:${process.arch}}`, "/bin/bash", "-c", '"chmod -R 777 /project && chmod -R 777 /linked-packages"', From adfcc81fc240b20af167e2f40d0a2d8a769458c0 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 18 Jan 2023 01:26:18 +0400 Subject: [PATCH 3/5] feat(wasm-rs): use alpine linux for image build strategy --- .../build-strategies/wasm/rust/image/Dockerfile.mustache | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/cli/src/lib/defaults/build-strategies/wasm/rust/image/Dockerfile.mustache b/packages/cli/src/lib/defaults/build-strategies/wasm/rust/image/Dockerfile.mustache index 08e32490bf..e5721098e8 100644 --- a/packages/cli/src/lib/defaults/build-strategies/wasm/rust/image/Dockerfile.mustache +++ b/packages/cli/src/lib/defaults/build-strategies/wasm/rust/image/Dockerfile.mustache @@ -1,4 +1,4 @@ -FROM rust:1.65.0 as base +FROM rust:1.66-alpine as base # Install the wasm32 rust build target RUN rustup target add wasm32-unknown-unknown @@ -6,8 +6,7 @@ RUN rustup target add wasm32-unknown-unknown WORKDIR /build-deps # Install curl -RUN apt-get update -RUN apt-get -y install curl clang llvm build-essential +RUN apk add curl build-base pkgconfig openssl-dev bash # Install wasm-opt RUN curl -L https://github.com/WebAssembly/binaryen/releases/download/version_101/binaryen-version_101-x86_64-linux.tar.gz | tar -xz \ From cffdc4d1a98e284b279395a416e82c9f788ebc79 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 18 Jan 2023 02:06:15 +0400 Subject: [PATCH 4/5] fix: issue --- .../cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts b/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts index 8a78cfd555..f96aef02b7 100644 --- a/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts +++ b/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts @@ -221,7 +221,7 @@ export class DockerVMBuildStrategy extends BuildStrategy { `${path.resolve( this._volumePaths.linkedPackages )}:/linked-packages`, - `${CONFIGS[language].baseImage}:${process.arch}}`, + `${CONFIGS[language].baseImage}:${process.arch}`, "/bin/bash", "-c", '"chmod -R 777 /project && chmod -R 777 /linked-packages"', From 91d7a40b437168e79a903def4d5f1796b0df9d42 Mon Sep 17 00:00:00 2001 From: Niraj Kamdar Date: Wed, 18 Jan 2023 18:38:07 +0400 Subject: [PATCH 5/5] fix: hardcode the exact docker image version --- .../lib/build-strategies/strategies/DockerVMStrategy.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts b/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts index f96aef02b7..b3e11d5f55 100644 --- a/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts +++ b/packages/cli/src/lib/build-strategies/strategies/DockerVMStrategy.ts @@ -29,16 +29,19 @@ const DEFAULTS_DIR = path.join( export interface VMConfig { defaultIncludes: string[]; baseImage: string; + version: string; } const CONFIGS: Record = { "wasm/rust": { defaultIncludes: ["Cargo.toml", "Cargo.lock"], baseImage: "polywrap/vm-base-rs", + version: "0.2.0", }, "wasm/assemblyscript": { defaultIncludes: ["package.json", "package-lock.json", "yarn.lock"], baseImage: "polywrap/vm-base-as", + version: "0.1.0", }, }; @@ -194,7 +197,7 @@ export class DockerVMBuildStrategy extends BuildStrategy { this._volumePaths.linkedPackages )}:/linked-packages`, cacheVolume, - `${CONFIGS[language].baseImage}:${process.arch}`, + `${CONFIGS[language].baseImage}:${process.arch}-${CONFIGS[language].version}`, "/bin/bash", "--verbose", "/project/polywrap-build.sh", @@ -221,7 +224,7 @@ export class DockerVMBuildStrategy extends BuildStrategy { `${path.resolve( this._volumePaths.linkedPackages )}:/linked-packages`, - `${CONFIGS[language].baseImage}:${process.arch}`, + `${CONFIGS[language].baseImage}:${process.arch}-${CONFIGS[language].version}`, "/bin/bash", "-c", '"chmod -R 777 /project && chmod -R 777 /linked-packages"',