Extract path from Docker Image (#1)

This commit is contained in:
Samuel Ryan 2020-08-29 16:20:01 +01:00 committed by GitHub
parent f6106497d3
commit bf80417647
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 3800 additions and 0 deletions

80
README.md Normal file
View file

@ -0,0 +1,80 @@
# Docker Extract
A GitHub Action for extracting files from a Docker Image.
```yaml
- uses: shrink/actions-docker-extract@v1
with:
image: 'docker.pkg.github.com/github/semantic/semantic'
path: '/etc/motd'
```
## Inputs
All inputs are required.
| ID | Description | Example |
| --- | ----------- | ------- |
| `image` | Docker Image to extract files from | `alpine` |
| `path` | Path (from root) to a file or directory within Image | `/etc/motd` |
## Examples
### Build, Extract
Using [docker/build-push-action][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.
```yaml
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
with:
image: my-example-image
path: /app
- name: Upload Dist
uses: actions/upload-artifact@v2
with:
path: ${{ steps.extract.outputs.destination }}/app
name: dist
```
### Login, Pull, Extract
Using [docker/login-action][login-action] to authenticate with the GitHub
Package Registry to extract from a published Docker Image.
```yaml
jobs:
extract:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Login to GitHub Package Registry
uses: docker/login-action@v1
with:
registry: docker.pkg.github.com
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: shrink/actions-docker-extract@v1
with:
image: ${{ github.repository }}/example-image:latest
path: /app
- name: Upload Dist
uses: actions/upload-artifact@v2
with:
path: ${{ steps.extract.outputs.destination }}/app
name: dist
```
[build-push-action]: https://github.com/docker/build-push-action
[login-action]: https://github.com/docker/login-action