adds docker file and pipeline
This commit is contained in:
parent
c7bbd0119f
commit
a8c022a828
|
@ -1,14 +0,0 @@
|
||||||
name: Build
|
|
||||||
on: [push, pull_request]
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
name: Build
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
- name: Build
|
|
||||||
uses: docker/build-push-action@v3
|
|
||||||
with:
|
|
||||||
push: false
|
|
40
Dockerfile
40
Dockerfile
|
@ -1,40 +0,0 @@
|
||||||
# Install the base requirements for the app.
|
|
||||||
# This stage is to support development.
|
|
||||||
FROM --platform=$BUILDPLATFORM python:alpine AS base
|
|
||||||
WORKDIR /app
|
|
||||||
COPY requirements.txt .
|
|
||||||
RUN pip install -r requirements.txt
|
|
||||||
|
|
||||||
FROM --platform=$BUILDPLATFORM node:18-alpine AS app-base
|
|
||||||
WORKDIR /app
|
|
||||||
COPY app/package.json app/yarn.lock ./
|
|
||||||
COPY app/spec ./spec
|
|
||||||
COPY app/src ./src
|
|
||||||
|
|
||||||
# Run tests to validate app
|
|
||||||
FROM app-base AS test
|
|
||||||
RUN yarn install
|
|
||||||
RUN yarn test
|
|
||||||
|
|
||||||
# Clear out the node_modules and create the zip
|
|
||||||
FROM app-base AS app-zip-creator
|
|
||||||
COPY --from=test /app/package.json /app/yarn.lock ./
|
|
||||||
COPY app/spec ./spec
|
|
||||||
COPY app/src ./src
|
|
||||||
RUN apk add zip && \
|
|
||||||
zip -r /app.zip /app
|
|
||||||
|
|
||||||
# Dev-ready container - actual files will be mounted in
|
|
||||||
FROM --platform=$BUILDPLATFORM base AS dev
|
|
||||||
CMD ["mkdocs", "serve", "-a", "0.0.0.0:8000"]
|
|
||||||
|
|
||||||
# Do the actual build of the mkdocs site
|
|
||||||
FROM --platform=$BUILDPLATFORM base AS build
|
|
||||||
COPY . .
|
|
||||||
RUN mkdocs build
|
|
||||||
|
|
||||||
# Extract the static content from the build
|
|
||||||
# and use a nginx image to serve the content
|
|
||||||
FROM --platform=$TARGETPLATFORM nginx:alpine
|
|
||||||
COPY --from=app-zip-creator /app.zip /usr/share/nginx/html/assets/app.zip
|
|
||||||
COPY --from=build /app/site /usr/share/nginx/html
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
# .github/workflows/docker-image.yml
|
||||||
|
name: Docker Image CI
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Log in to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Build and push Docker image
|
||||||
|
uses: docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
push: true
|
||||||
|
tags: |
|
||||||
|
ghcr.io/${{ github.repository_owner }}/getting-started-with-Docker-and-Build-Pipeline:latest
|
||||||
|
ghcr.io/${{ github.repository_owner }}/getting-started-with-Docker-and-Build-Pipeline:${{ github.sha }}
|
|
@ -1,12 +0,0 @@
|
||||||
version: "3.7"
|
|
||||||
|
|
||||||
services:
|
|
||||||
docs:
|
|
||||||
build:
|
|
||||||
context: .
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
target: dev
|
|
||||||
ports:
|
|
||||||
- 8000:8000
|
|
||||||
volumes:
|
|
||||||
- ./:/app
|
|
Loading…
Reference in New Issue