Skip to content

Commit

Permalink
Add Dockerfile and workflow for building and pushing Docker image to …
Browse files Browse the repository at this point in the history
…ghcr
  • Loading branch information
jeancochrane committed Oct 23, 2023
1 parent e956384 commit dd4ed07
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
52 changes: 52 additions & 0 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
name: deploy

on:
pull_request:
push:
branches: [main, '*-assessment-year']

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
publish-docker-image:
runs-on: ubuntu-latest
# Set token permissions so that we can publish to GitHub Container Registry
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.registry }}/${{ env.IMAGE_NAME }}
# Tag the following types of images:
# * On a branch, tag with the branch name (e.g. `master`)
# * On a PR, tag with the PR number (e.g. `pr-12`)
# * On all events, tag with the short git SHA (e.g. `e956384`)
tags: |
type=ref,event=branch
type=ref,event=pr
type=sha
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cahe-to: type=gha,mode=max
12 changes: 12 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM rocker/r-ver:4.3.1

# Install system dependencies
RUN apt-get update && apt-get install --no-install-recommends -y \
libcurl4-openssl-dev libssl-dev libxml2-dev libgit2-dev git \
libudunits2-dev python3-dev python3-pip

# Install DVC to fetch data from S3 using dvc pull
RUN pip install aiobotocore[boto3] boto3 dvc[s3]

# Install R dependencies
RUN Rscript -e 'renv::restore()'

0 comments on commit dd4ed07

Please sign in to comment.