Skip to content

Commit

Permalink
Merge pull request #42 from ai-cfia/41-as-a-devops-i-would-like-to-ha…
Browse files Browse the repository at this point in the history
…ve-a-pipeline-to-host-our-own-custom-dockerfiles

41 as a devops i would like to have a pipeline to host our own custom dockerfiles
  • Loading branch information
SonOfLope authored May 31, 2024
2 parents 1ad2c93 + b4db87f commit 3b4e482
Show file tree
Hide file tree
Showing 6 changed files with 110 additions and 0 deletions.
64 changes: 64 additions & 0 deletions .github/workflows/custom-dockerfile-push.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Manual build/push fo now
name: Image build

on:
workflow_dispatch:
inputs:
image:
required: true
description: Image a build
type: choice
options:
- nginx
tag:
required: true
description: Version a tag l'image

env:
REGISTRY: ghcr.io/ai-cfia

jobs:
build-on-release:
runs-on: ubuntu-latest
steps:
- name: Check Out Repo
uses: actions/checkout@v4

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

- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: ${{ runner.os }}-buildx

- name: Build and push
id: docker_build
uses: docker/build-push-action@v5
with:
context: ./${{ inputs.image }}
file: ./dockerfiles/${{ inputs.image }}/Dockerfile
push: true
tags: |
${{ env.REGISTRY }}/${{ inputs.image }}:${{ inputs.tag }}
${{ env.REGISTRY }}/${{ inputs.image }}:latest
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,mode=max,dest=/tmp/.buildx-cache-new

- name: Refresh Cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
2 changes: 2 additions & 0 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ jobs:
yaml-check:
uses:
ai-cfia/github-workflows/.github/workflows/workflow-yaml-check.yml@main
with:
config-file-path: '.yamllint.yml'

sh-check:
uses:
Expand Down
15 changes: 15 additions & 0 deletions .yamllint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Based on https://github.com/kubernetes-sigs/kubespray
extends: default
ignore: |
.git/
rules:
indentation:
spaces: 2
indent-sequences: consistent
line-length: disable
truthy: disable
document-start: false
comments-indentation: false
comments:
min-spaces-from-content: 2
level: error
5 changes: 5 additions & 0 deletions dockerfiles/nginx/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf.template
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh && apt-get update && apt-get install -y gettext-base
ENTRYPOINT ["/entrypoint.sh"]
3 changes: 3 additions & 0 deletions dockerfiles/nginx/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
envsubst "\$BACKEND_PORT \$FRONTEND_PORT" < /etc/nginx/nginx.conf.template > /etc/nginx/nginx.conf
nginx -g 'daemon off;'
21 changes: 21 additions & 0 deletions dockerfiles/nginx/nginx.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
events { }

http {
server {
listen 80;

location / {
proxy_pass http://frontend:${FRONTEND_PORT}/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /api/ {
proxy_pass http://backend:${BACKEND_PORT}/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}

0 comments on commit 3b4e482

Please sign in to comment.