Skip to content

Commit

Permalink
initial commit of Docker config(s) and workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
gregrickaby committed May 8, 2024
1 parent 6263cb6 commit 1098d82
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .dockerignore
@@ -0,0 +1,3 @@
node_modules
npm-debug.log
.next
39 changes: 39 additions & 0 deletions .github/workflows/docker.yml
@@ -0,0 +1,39 @@
name: Build and Push to Docker Hub

on:
push:
branches:
- main

jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest

steps:
- name: Check out repo
uses: actions/checkout@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: gregrickaby/viewer-for-reddit

- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
23 changes: 23 additions & 0 deletions Dockerfile
@@ -0,0 +1,23 @@
# Use the official Node.js 20 image.
# https://hub.docker.com/_/node
FROM node:20-alpine

# Create and change to the app directory.
WORKDIR /usr/src/app

# Copy application dependency manifests to the container image.
# A wildcard is used to ensure both package.json AND package-lock.json are copied.
# Copying this separately prevents re-running npm install on every code change.
COPY package*.json ./

# Install production dependencies.
RUN npm ci

# Copy local code to the container image.
COPY . .

# Build the application for production.
RUN npm run build

# Run the web service on container startup.
CMD [ "npm", "start" ]

0 comments on commit 1098d82

Please sign in to comment.