Skip to content

Commit a132b98

Browse files
committed
feat: adding Dockerfile.multiarch
1 parent 6c11b89 commit a132b98

File tree

2 files changed

+73
-0
lines changed

2 files changed

+73
-0
lines changed

.github/workflows/dockerx.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Build and Push Headless Images
2+
'on':
3+
schedule:
4+
- cron: 0 1 * * *
5+
push:
6+
branches-ignore:
7+
- none
8+
workflow_dispatch: null
9+
jobs:
10+
build:
11+
runs-on: self-hosted
12+
timeout-minutes: 60
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v4
16+
- name: Set up Docker Buildx
17+
uses: docker/setup-buildx-action@v3
18+
- name: Login to DockerHub
19+
uses: docker/login-action@v3
20+
with:
21+
username: '${{ secrets.DOCKERHUB_USERNAME }}'
22+
password: '${{ secrets.DOCKERHUB_TOKEN }}'
23+
- name: Set tag name based on branch
24+
id: set_tag
25+
run: |
26+
if [[ "${{ github.ref_name }}" == "master" ]]; then
27+
echo "tag=latest" >> $GITHUB_OUTPUT
28+
else
29+
GITHUB_REFNAME=${{ github.ref_name }}
30+
BRANCH_NAME=${GITHUB_REFNAME//\//_}
31+
echo "tag=latest-$BRANCH_NAME" >> $GITHUB_OUTPUT
32+
fi
33+
- name: Build and push
34+
uses: docker/build-push-action@v5
35+
with:
36+
context: headless
37+
file: headless/Dockerfile.multiarch
38+
platforms: 'linux/amd64,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x'
39+
push: true
40+
tags: 'hivesolutions/headless-multiarch:${{ steps.set_tag.outputs.tag }}'

Dockerfile.multiarch

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
FROM node:18-bookworm-slim as builder
2+
3+
ADD app.js /app/
4+
ADD package.json /app/
5+
ADD lib /app/lib
6+
7+
WORKDIR /app
8+
9+
RUN NODE_ENV=production PUPPETEER_SKIP_CHROME_DOWNLOAD=false npm install
10+
11+
FROM node:18-bookworm-slim
12+
13+
LABEL version="1.0"
14+
LABEL maintainer="Hive Solutions <development@hive.pt>"
15+
16+
RUN DEBIAN_FRONTEND=noninteractive apt-get update &&\
17+
DEBIAN_FRONTEND=noninteractive apt-get install -y fonts-arphic-uming\
18+
fonts-wqy-zenhei fonts-thai-tlwg fonts-khmeros fonts-kacst fonts-freefont-ttf\
19+
fonts-ipafont-gothic fonts-liberation fonts-noto-cjk fonts-noto-color-emoji\
20+
fonts-arphic-ukai ttf-wqy-zenhei ttf-wqy-microhei libxss1 dbus dbus-x11\
21+
fontconfig chromium --no-install-recommends &&\
22+
DEBIAN_FRONTEND=noninteractive apt-get autoremove -y && apt-get clean &&\
23+
rm -rf /var/lib/apt/lists/* && rm -rf /var/cache/apt
24+
25+
ENV HOST 0.0.0.0
26+
ENV PORT 8080
27+
ENV NODE_ENV production
28+
ENV PUPPETEER_EXECUTABLE_PATH /usr/bin/chromium
29+
30+
COPY --from=builder /app/node_modules /app/node_modules
31+
COPY --from=builder /app /app
32+
33+
CMD ["/usr/local/bin/node", "/app/app.js"]

0 commit comments

Comments
 (0)