# Creating a Docker Action The [container-template](https://github.com/actions/container-template) repo contains the base files to create a Docker action. # Create a Repo from the Template Navigate to https://github.com/actions/container-template Click on `Use this template` to create the repo for your action. ![template](assets/node12-template.png) Complete creating your repo and clone the repo. > NOTE: The location of the repo will be how users will reference your action in their workflow file with the using keyword. e.g. To use https://github.com/actions/setup-node, users will author: ```yaml steps: using: actions/setup-node@master ``` # Define Metadata Your action has a name and a description. Update the author. Create inputs that your unit of work will need. These will be what workflow authors set with the `with:` keyword. ```yaml name: 'My Container Action' description: 'Get started with Container actions' author: 'GitHub' inputs: myInput: description: 'Input to use' default: 'world' runs: using: 'docker' image: 'Dockerfile' args: - ${{ inputs.myInput }} ``` It will be run with docker and the input is mapped into the args # Change Code The entry point is in entrypoint.sh ```bash #!/bin/sh -l echo "hello $1" ``` # Publish Simply push your action to publish. ```bash $ git push ``` The runner will download the action and build the docker container on the fly at runtime. > Consider versioning your actions with tags. See [versioning](/docs/action-versioning.md)