Hybrid method 3: Custom Docker image
Bundle the nodegen-server and Wasm modules into a new Docker image
Alternatively, you can bundle the nodegen-server and Wasm modules into a new Docker image. This approach is useful if you want to create a custom Docker image with your own configuration.
Complete the instructions in Export the Wasm modules from Spark.
Navigate to your desired working directory and move the exported ZIP to this location. In this example the name of the file is
runner_example.zip.Create a Dockerfile with the following content:
FROM alpine:latest AS unzipper # Set extract model name ARG MODEL_PATH=./runner_example.zip # Add unzip package RUN apk add unzip RUN mkdir /models && mkdir /model_zip # Copy extracted model model zip to temp folder COPY $MODEL_PATH ./model_zip # Unzip the extracted zip file RUN find ./model_zip -depth -name "*.zip" -exec sh -c 'f="{}"; unzip -- "$f" -d ./models' \; && rm -rf ./model_zip; # Set nodegen-server image FROM ghcr.io/coherent-partners/nodegen-server:latest # Create models folder RUN mkdir /models # Copy unzipped models to previously created folder COPY --from=unzipper /models/ /models # Set MODEL_LOCATION variable to models folder ENV MODEL_LOCATION=/models # Set the hybrid runner mode ENV USE_SAAS=false # Default application will listen on port 3000; you can set different to port by set PORT variable ENV PORT=8080 # Start the application by script npm start CMD ["npm", "start"]buildthe Docker image.docker build -t nodegen_server_custom .runthe service and create a container calledwasm-server. This example binds8080of the container to the port8080of the host.docker run --name wasm-server -p 8080:8080 nodegen_server_customMake API calls to the
healthcheckandexecuteendpoints similar to above tolocalhost:8080.
Configure HTTPS with nginx
By default nodegen-server only supports HTTP. HTTPS support can be configured by including nginx server in the Docker image. Read more on how to configure HTTPS servers in the nginx documentation.
Navigate to your desired working directory and move the exported ZIP to this location. In this example the name of the file is
runner_example.zip.Prepare your ssl certificate in the working directory saved as
ssl.Create your nginx configuration file in the working directory, saved as
nginx.conf. Here is an example that could be used.Create a Dockerfile with the following content:
Make API calls to the
healthcheckandexecuteendpoints similar Hybrid method 2: Manual Wasm mount.
Last updated
