Skip to content

Commit

Permalink
Docker base images (#7651)
Browse files Browse the repository at this point in the history
Signed-off-by: Andrey Sobolev <[email protected]>
  • Loading branch information
haiodo authored Jan 13, 2025
1 parent 213804b commit 7e407fc
Show file tree
Hide file tree
Showing 6 changed files with 104 additions and 0 deletions.
59 changes: 59 additions & 0 deletions .github/workflows/baseimage.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# This is a basic workflow to help you get started with Actions

name: Docker base image

concurrency:
group: 'service-base'
cancel-in-progress: true

# Controls when the action will run.
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
docker-build:
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Configure docker
uses: crazy-max/ghaction-setup-docker@v3
with:
daemon-config: |
{
"features": {
"containerd-snapshotter": true
}
}
- uses: actions/checkout@v4
with:
fetch-depth: 1
filter: tree:0

- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- uses: pnpm/action-setup@v4
with:
version: latest
- name: Docker build
run: |
cd ./dev/base-image
./build.sh
env:
DOCKER_CLI_HINTS: false
DOCKER_EXTRA: --platform=linux/amd64,linux/arm64
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: hardcoreeng
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
- name: Publish base image
run: |
echo Pushing base image
cd ./dev/base-image
./publish.sh
11 changes: 11 additions & 0 deletions dev/base-image/base.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM node:22

RUN apt-get install libjemalloc2 dumb-init
RUN apt-get clean

ENV LD_PRELOAD=libjemalloc.so.2
ENV MALLOC_CONF=dirty_decay_ms:1000,narenas:2,background_thread:true

WORKDIR /usr/src/app
ENV NODE_ENV=production
RUN npm install --ignore-scripts=false --verbose bufferutil utf-8-validate snappy msgpackr msgpackr-extract --unsafe-perm
5 changes: 5 additions & 0 deletions dev/base-image/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env bash

docker build -t hardcoreeng/base -f base.Dockerfile .
docker build -t hardcoreeng/rekoni-base -f rekoni.Dockerfile .
docker build -t hardcoreeng/print-base -f print.Dockerfile .
15 changes: 15 additions & 0 deletions dev/base-image/print.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
FROM hardcoreeng/base

# We don't need the standalone Chromium
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
# Set executable path for puppeteer
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium

# Install Chromium and fonts
# https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md?plain=1#L397
RUN apt-get update --fix-missing
RUN apt-get install -y gnupg wget libxss1
RUN apt-get install -y fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf
RUN apt-get install -y chromium-common/stable --no-install-recommends
RUN apt-get install -y chromium/stable --no-install-recommends
RUN apt-get clean
5 changes: 5 additions & 0 deletions dev/base-image/push.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env bash

docker push hardcoreeng/base
docker push hardcoreeng/rekoni-base
docker push hardcoreeng/print-base
9 changes: 9 additions & 0 deletions dev/base-image/rekoni.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM hardcoreeng/base

RUN apt-get install -y \
coreutils \
antiword \
poppler-utils \
html2text \
unrtf
RUN npm install --ignore-scripts=false --verbose [email protected] [email protected] --unsafe-perm

0 comments on commit 7e407fc

Please sign in to comment.