A GitHub Action for extracting files from a Docker Image.
- uses: shrink/actions-docker-extract@v1
with:
image: 'ghost:alpine'
path: '/var/lib/ghost/current/core/built/assets/.'
All inputs are required.
ID | Description | Examples |
---|---|---|
image |
Docker Image to extract files from | alpine ghcr.io/github/super-linter:latest |
path |
Path (from root) to a file or directory within Image | files/example.txt files files/. |
📎 To copy the contents of a directory the
path
must end with/.
otherwise the directory itself will be copied. More information about the specific rules can be found via the docker cp documentation.
ID | Description | Example |
---|---|---|
destination |
Destination path containing the extracted file(s) | .extracted-1598717412/ |
Using docker/build-push-action to build a Docker
Image and then extract the contents of the /app
directory within the newly
built image to upload as a dist
artifact.
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build Docker Image
uses: docker/build-push-action@v1
with:
repository: my-example-image
tags: latest
- uses: shrink/actions-docker-extract@v1
id: extract
with:
image: my-example-image
path: /app/.
- name: Upload Dist
uses: actions/upload-artifact@v2
with:
path: ${{ steps.extract.outputs.destination }}
name: dist
Using docker/login-action to authenticate with the GitHub Container Registry to extract from a published Docker Image.
jobs:
extract:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GHCR_PAT }}
- uses: shrink/actions-docker-extract@v1
id: extract
with:
image: ghcr.io/${{ github.repository }}:latest
path: /app/.
- name: Upload Dist
uses: actions/upload-artifact@v2
with:
path: ${{ steps.extract.outputs.destination }}
name: dist