Docker base images (#7651)

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
Andrey Sobolev
2025-01-13 14:51:06 +07:00
committed by GitHub
parent 213804b9b6
commit 7e407fce75
6 changed files with 104 additions and 0 deletions
+59
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -0,0 +1,5 @@
#!/usr/bin/env bash
docker push hardcoreeng/base
docker push hardcoreeng/rekoni-base
docker push hardcoreeng/print-base
+9
View File
@@ -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 sharp@v0.30.2 pdfjs-dist@v2.12.313 --unsafe-perm