{"id":14987852,"url":"https://github.com/apache/openwhisk-runtime-docker","last_synced_at":"2025-04-10T04:54:16.962Z","repository":{"id":46764719,"uuid":"105931844","full_name":"apache/openwhisk-runtime-docker","owner":"apache","description":"Apache OpenWhisk SDK for building Docker \"blackbox\" runtimes","archived":false,"fork":false,"pushed_at":"2024-09-24T14:21:48.000Z","size":3188,"stargazers_count":25,"open_issues_count":0,"forks_count":43,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-04-03T04:17:03.915Z","etag":null,"topics":["apache","cloud","docker","faas","functions","functions-as-a-service","openwhisk","openwhisk-runtime","serverless","serverless-architectures","serverless-functions"],"latest_commit_sha":null,"homepage":"https://openwhisk.apache.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apache.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-05T19:31:46.000Z","updated_at":"2024-09-30T17:18:54.000Z","dependencies_parsed_at":"2023-01-30T04:45:25.395Z","dependency_job_id":"bb86e73e-b157-4da9-83da-97a4885ade86","html_url":"https://github.com/apache/openwhisk-runtime-docker","commit_stats":{"total_commits":807,"total_committers":73,"mean_commits":"11.054794520547945","dds":0.7930607187112764,"last_synced_commit":"64943d7cfb393b6d4d137569f502e61a0efd212e"},"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fopenwhisk-runtime-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fopenwhisk-runtime-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fopenwhisk-runtime-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apache%2Fopenwhisk-runtime-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apache","download_url":"https://codeload.github.com/apache/openwhisk-runtime-docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247715173,"owners_count":20984006,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache","cloud","docker","faas","functions","functions-as-a-service","openwhisk","openwhisk-runtime","serverless","serverless-architectures","serverless-functions"],"created_at":"2024-09-24T14:15:34.589Z","updated_at":"2025-04-10T04:54:16.935Z","avatar_url":"https://github.com/apache.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\n#\n# Licensed to the Apache Software Foundation (ASF) under one or more\n# contributor license agreements.  See the NOTICE file distributed with\n# this work for additional information regarding copyright ownership.\n# The ASF licenses this file to You under the Apache License, Version 2.0\n# (the \"License\"); you may not use this file except in compliance with\n# the License.  You may obtain a copy of the License at\n#\n#     http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n--\u003e\n\n# Apache OpenWhisk runtimes for docker\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0)\n[![Continuous Integration](https://github.com/apache/openwhisk-runtime-docker/actions/workflows/ci.yaml/badge.svg)](https://github.com/apache/openwhisk-runtime-docker/actions/workflows/ci.yaml)\n\n\n### Give it a try today\nCreate a zip action with a `exec` in the root of the zip\n```\necho \\\n'#!/bin/bash\necho \"{\\\"message\\\":\\\"Hello World\\\"}\"' \u003e exec\n```\n\nFor the return result, not only support `dictionary` but also support `array`\n```\necho \\\n'#!/bin/bash\necho '[\"a\", \"b\"]'' \u003e exec\n```\n\nAnd support array result for sequence action as well, the first action's array result can be used as next action's input parameter\n```\necho \\\n'#!/bin/bash\necho $1' \u003e exec\n```\n\n```\nchmod +x exec\nzip myAction.zip exec\n```\n\nCreate the action using the docker image for the runtime\n```\nwsk action update myAction myAction.zip --docker openwhisk/dockerskeleton:1.3.2\n```\n\nThis works on any deployment of Apache OpenWhisk\n\n### To use on a deployment that contains the runtime deployed\n\nCreate action using `--native`\n```\nwsk action update myAction myAction.zip --native\n```\n\n### Local development\n```\n./gradlew :core:actionProxy:distDocker :sdk:docker:distDocker\n```\nThis will produce the image `whisk/dockerskeleton`\n\nBuild and Push image\n```\ndocker login\n./gradlew core:actionProxy:distDocker -PdockerImagePrefix=$prefix-user -PdockerRegistry=docker.io\n```\n\nDeploy OpenWhisk using ansible environment that contains the runtime of type `blackboxes` with name `dockerskeleton`\nAssuming you have OpenWhisk already deploy locally and `OPENWHISK_HOME` pointing to root directory of OpenWhisk core repository.\n\nSet `ROOTDIR` to the root directory of this repository.\n\nRedeploy OpenWhisk\n```\ncd $OPENWHISK_HOME/ansible\nANSIBLE_CMD=\"ansible-playbook -i ${ROOTDIR}/ansible/environments/local\"\n$ANSIBLE_CMD setup.yml\n$ANSIBLE_CMD couchdb.yml\n$ANSIBLE_CMD initdb.yml\n$ANSIBLE_CMD wipe.yml\n$ANSIBLE_CMD openwhisk.yml\n```\n\nOr you can use `wskdev` and create a soft link to the target ansible environment, for example:\n```\nln -s ${ROOTDIR}/ansible/environments/local ${OPENWHISK_HOME}/ansible/environments/local-docker\nwskdev fresh -t local-docker\n```\n\nTo use as docker action push to your own dockerhub account\n```\ndocker tag whisk/dockerskeleton $user_prefix/dockerskeleton\ndocker push $user_prefix/dockerskeleton\n```\nThen create the action using your image from dockerhub\n```\nwsk action update myAction myAction.zip --docker $user_prefix/dockerskeleton\n```\nThe `$user_prefix` is usually your dockerhub user id.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fopenwhisk-runtime-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapache%2Fopenwhisk-runtime-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapache%2Fopenwhisk-runtime-docker/lists"}