How do I use Docker with GitHub Actions?

后端 未结 2 1266
面向向阳花
面向向阳花 2021-02-03 18:42

When I create a GitHub Actions workflow file, the example YAML file contains runs-on: ubuntu-latest. According to the docs, I only have the options between a couple

2条回答
  •  生来不讨喜
    2021-02-03 19:20

    A job (as part of a workflow) runs inside a virtual machine. You choose one of the environments provided by them (e.g. ubuntu-latest or windows-2019).

    A job consists of one or more steps. A step may be a simple shell command, using run. But it may also be an action, using uses

    name: CI
    
    on: [push]
    
    jobs:
      myjob:
        runs-on: ubuntu-18.04 # linux required if you want to use docker
        steps:
        # Those steps are executed directly on the VM
        - run: ls /
        - run: echo $HOME
        - name: Add a file
          run: touch $HOME/stuff.txt
        # Those steps are actions, which may run inside a container
        - uses: actions/checkout@v1
        - uses: ./.github/actions/my-action
        - uses: docker://continuumio/anaconda3:2019.07
    
    • run: executes the command with the shell of the OS
    • uses: actions/checkout@v1 runs the action from the user / organization actions in the repository checkout (https://github.com/actions/checkout), major release 1
    • uses: ./.github/actions/my-action runs the action which is defined in your own repository under this path
    • uses: docker://continuumio/anaconda3:2019.07 runs the anaconda3 image from user / organization continuumio, version 2019.07, from the Docker Hub (https://hub.docker.com/r/continuumio/anaconda3)

    Keep in mind that you need to select a linux distribution as the environment if you want to use Docker.

    Take a look at the documentation for uses and run for further details.

    It should also be noted that there is a container option, allowing you to run any steps that would usually run on the host to be runned inside a container: https://help.github.com/en/articles/workflow-syntax-for-github-actions#jobsjob_idcontainer

提交回复
热议问题