Create a zip action with a exec
in the root of the zip
echo \
'#!/bin/bash
echo "{\"messag\":\"Hello World\"}"' > exec
chmod +x exec
zip myAction.zip exec
Create the action using the docker image for the runtime
wsk action update myAction myAction.zip --docker openwhisk/dockerskeleton:1.3.2
This works on any deployment of Apache OpenWhisk
Create action using --native
wsk action update myAction myAction.zip --native
./gradlew :core:actionProxy:distDocker :sdk:docker:distDocker
This will produce the image whisk/dockerskeleton
Build and Push image
docker login
./gradlew core:actionProxy:distDocker -PdockerImagePrefix=$prefix-user -PdockerRegistry=docker.io
Deploy OpenWhisk using ansible environment that contains the runtime of type blackboxes
with name dockerskeleton
Assuming you have OpenWhisk already deploy localy and OPENWHISK_HOME
pointing to root directory of OpenWhisk core repository.
Set ROOTDIR
to the root directory of this repository.
Redeploy OpenWhisk
cd $OPENWHISK_HOME/ansible
ANSIBLE_CMD="ansible-playbook -i ${ROOTDIR}/ansible/environments/local"
$ANSIBLE_CMD setup.yml
$ANSIBLE_CMD couchdb.yml
$ANSIBLE_CMD initdb.yml
$ANSIBLE_CMD wipe.yml
$ANSIBLE_CMD openwhisk.yml
Or you can use wskdev
and create a soft link to the target ansible environment, for example:
ln -s ${ROOTDIR}/ansible/environments/local ${OPENWHISK_HOME}/ansible/environments/local-docker
wskdev fresh -t local-docker
To use as docker action push to your own dockerhub account
docker tag whisk/dockerskeleton $user_prefix/dockerskeleton
docker push $user_prefix/dockerskeleton
Then create the action using your image from dockerhub
wsk action update myAction myAction.zip --docker $user_prefix/dockerskeleton
The $user_prefix
is usually your dockerhub user id.
Apache OpenWhisk Runtime Docker is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.