Skip to content

Commit 74c20ef

Browse files
committed
chore: add base images and update Dockerfiles to pull from akoflow/base-*
1 parent 584b420 commit 74c20ef

7 files changed

Lines changed: 167 additions & 75 deletions

File tree

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Build Base Images
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- 'releases/base-images/**'
8+
workflow_dispatch:
9+
10+
env:
11+
DOCKER_ORG: akoflow
12+
13+
jobs:
14+
build:
15+
name: Base — ${{ matrix.name }}
16+
runs-on: ubuntu-latest
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
include:
21+
- name: control-plane
22+
dockerfile: releases/base-images/control-plane.Dockerfile
23+
image: akoflow/base-control-plane
24+
25+
- name: standalone
26+
dockerfile: releases/base-images/standalone.Dockerfile
27+
image: akoflow/base-standalone
28+
29+
- name: workflow-engine
30+
dockerfile: releases/base-images/workflow-engine.Dockerfile
31+
image: akoflow/base-workflow-engine
32+
33+
steps:
34+
- uses: actions/checkout@v4
35+
36+
- uses: docker/setup-qemu-action@v3
37+
- uses: docker/setup-buildx-action@v3
38+
39+
- uses: docker/login-action@v3
40+
with:
41+
username: ${{ secrets.DOCKERHUB_USERNAME }}
42+
password: ${{ secrets.DOCKERHUB_TOKEN }}
43+
44+
- name: Build and push
45+
uses: docker/build-push-action@v6
46+
with:
47+
context: .
48+
file: ${{ matrix.dockerfile }}
49+
platforms: linux/amd64,linux/arm64
50+
push: true
51+
tags: ${{ matrix.image }}:latest
52+
cache-from: type=gha,scope=base-${{ matrix.name }}
53+
cache-to: type=gha,scope=base-${{ matrix.name }},mode=max
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
FROM php:8.4-apache
2+
3+
RUN apt-get update && apt-get install -y \
4+
git \
5+
curl \
6+
unzip \
7+
zip \
8+
libpq-dev \
9+
libzip-dev \
10+
libpng-dev \
11+
libonig-dev \
12+
libxml2-dev \
13+
libsqlite3-dev \
14+
&& docker-php-ext-install \
15+
pdo \
16+
pdo_pgsql \
17+
pdo_sqlite \
18+
mbstring \
19+
bcmath \
20+
zip \
21+
opcache \
22+
&& apt-get clean \
23+
&& rm -rf /var/lib/apt/lists/*
24+
25+
RUN TERRAFORM_VERSION=1.9.5 \
26+
&& case "$(uname -m)" in \
27+
aarch64|arm64) ARCH=arm64 ;; \
28+
*) ARCH=amd64 ;; \
29+
esac \
30+
&& curl -fsSL "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_${ARCH}.zip" -o /tmp/terraform.zip \
31+
&& unzip /tmp/terraform.zip -d /usr/local/bin \
32+
&& rm /tmp/terraform.zip \
33+
&& terraform version
34+
35+
RUN a2enmod rewrite
36+
37+
ENV APACHE_DOCUMENT_ROOT=/var/www/html/public
38+
39+
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' \
40+
/etc/apache2/sites-available/*.conf \
41+
/etc/apache2/apache2.conf \
42+
/etc/apache2/conf-available/*.conf
43+
44+
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
FROM node:20-bookworm-slim
2+
3+
ENV DEBIAN_FRONTEND=noninteractive
4+
5+
RUN apt-get update && apt-get install -y --no-install-recommends \
6+
ca-certificates \
7+
curl \
8+
gnupg \
9+
nginx \
10+
openssh-client \
11+
sshpass \
12+
python3 \
13+
python3-apt \
14+
python3-yaml \
15+
supervisor \
16+
unzip \
17+
&& rm -rf /var/lib/apt/lists/*
18+
19+
RUN apt-get update && apt-get install -y --no-install-recommends ansible \
20+
&& rm -rf /var/lib/apt/lists/*
21+
22+
RUN curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/sury-php.gpg \
23+
&& echo "deb [signed-by=/usr/share/keyrings/sury-php.gpg] https://packages.sury.org/php/ bookworm main" > /etc/apt/sources.list.d/sury-php.list \
24+
&& apt-get update \
25+
&& apt-get install -y --no-install-recommends \
26+
php8.4-cli \
27+
php8.4-common \
28+
php8.4-fpm \
29+
php8.4-curl \
30+
php8.4-mbstring \
31+
php8.4-xml \
32+
php8.4-zip \
33+
php8.4-sqlite3 \
34+
php8.4-bcmath \
35+
php8.4-intl \
36+
php8.4-opcache \
37+
&& rm -rf /var/lib/apt/lists/*
38+
39+
RUN TERRAFORM_VERSION=1.9.5 \
40+
&& case "$(uname -m)" in \
41+
aarch64|arm64) TERRAFORM_ARCH=arm64 ;; \
42+
x86_64|amd64) TERRAFORM_ARCH=amd64 ;; \
43+
*) echo "Unsupported architecture: $(uname -m)" >&2; exit 1 ;; \
44+
esac \
45+
&& curl -fsSL "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_${TERRAFORM_ARCH}.zip" -o /tmp/terraform.zip \
46+
&& unzip /tmp/terraform.zip -d /usr/local/bin \
47+
&& rm /tmp/terraform.zip \
48+
&& terraform version
49+
50+
RUN rm -f /etc/nginx/sites-enabled/default /etc/nginx/sites-available/default
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
FROM debian:bookworm-slim
2+
3+
RUN apt-get update && apt-get install -y \
4+
ca-certificates \
5+
curl \
6+
unzip \
7+
sqlite3 \
8+
ssh \
9+
sshpass \
10+
rsync \
11+
&& rm -rf /var/lib/apt/lists/*

releases/standalone/Dockerfile

Lines changed: 6 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ ARG BACKEND_REF=main
55
ARG FRONTEND_REPO=https://github.com/UFFeScience/akoflow-deployment-control-plane-ui.git
66
ARG FRONTEND_REF=main
77
ARG NODE_VERSION=20
8-
ARG TARGETARCH
98

109
FROM composer:2 AS backend-builder
1110

@@ -14,12 +13,9 @@ ARG BACKEND_REF
1413

1514
WORKDIR /src/backend
1615

17-
RUN apk add --no-cache \
18-
git \
19-
ca-certificates \
20-
unzip
16+
RUN apk add --no-cache git ca-certificates unzip
2117

22-
RUN git clone --depth 1 --branch "${BACKEND_REF}" "${BACKEND_REPO}" .
18+
RUN git clone --depth 1 --branch "${BACKEND_REF}" "${BACKEND_REPO}" .
2319

2420
RUN composer install --no-interaction --no-dev --prefer-dist --optimize-autoloader
2521

@@ -32,9 +28,7 @@ ENV NEXT_PUBLIC_API_URL=/api
3228

3329
WORKDIR /src/frontend
3430

35-
RUN apt-get update && apt-get install -y --no-install-recommends \
36-
git \
37-
ca-certificates \
31+
RUN apt-get update && apt-get install -y --no-install-recommends git ca-certificates \
3832
&& rm -rf /var/lib/apt/lists/*
3933

4034
RUN corepack enable
@@ -46,64 +40,14 @@ RUN npm run build
4640
RUN npm prune --omit=dev
4741
RUN rm -rf .git .next/cache
4842

49-
FROM node:${NODE_VERSION}-bookworm-slim AS runtime
50-
51-
ARG TARGETARCH
43+
FROM akoflow/base-standalone:latest AS runtime
5244

5345
ENV NODE_ENV=production \
5446
APP_ENV=production \
55-
HOME=/tmp \
56-
DEBIAN_FRONTEND=noninteractive
47+
HOME=/tmp
5748

5849
WORKDIR /app
5950

60-
RUN apt-get update && apt-get install -y --no-install-recommends \
61-
ca-certificates \
62-
curl \
63-
gnupg \
64-
nginx \
65-
openssh-client \
66-
sshpass \
67-
python3 \
68-
python3-apt \
69-
python3-yaml \
70-
supervisor \
71-
unzip \
72-
&& rm -rf /var/lib/apt/lists/*
73-
74-
RUN apt-get update && apt-get install -y --no-install-recommends ansible \
75-
&& rm -rf /var/lib/apt/lists/*
76-
77-
RUN curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/sury-php.gpg \
78-
&& echo "deb [signed-by=/usr/share/keyrings/sury-php.gpg] https://packages.sury.org/php/ bookworm main" > /etc/apt/sources.list.d/sury-php.list \
79-
&& apt-get update \
80-
&& apt-get install -y --no-install-recommends \
81-
php8.4-cli \
82-
php8.4-common \
83-
php8.4-fpm \
84-
php8.4-curl \
85-
php8.4-mbstring \
86-
php8.4-xml \
87-
php8.4-zip \
88-
php8.4-sqlite3 \
89-
php8.4-bcmath \
90-
php8.4-intl \
91-
php8.4-opcache \
92-
&& rm -rf /var/lib/apt/lists/*
93-
94-
RUN TERRAFORM_VERSION=1.9.5 \
95-
&& case "$(uname -m)" in \
96-
aarch64|arm64) TERRAFORM_ARCH=arm64 ;; \
97-
x86_64|amd64) TERRAFORM_ARCH=amd64 ;; \
98-
*) echo "Unsupported architecture: $(uname -m)" >&2; exit 1 ;; \
99-
esac \
100-
&& curl -fsSL "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_${TERRAFORM_ARCH}.zip" -o /tmp/terraform.zip \
101-
&& unzip /tmp/terraform.zip -d /usr/local/bin \
102-
&& rm /tmp/terraform.zip \
103-
&& terraform version
104-
105-
RUN rm -f /etc/nginx/sites-enabled/default /etc/nginx/sites-available/default
106-
10751
COPY --from=backend-builder /src/backend /app/backend
10852
COPY --from=frontend-builder /src/frontend/package.json /app/frontend/package.json
10953
COPY --from=frontend-builder /src/frontend/package-lock.json /app/frontend/package-lock.json
@@ -123,4 +67,4 @@ RUN chmod +x /usr/local/bin/akoflow-entrypoint \
12367

12468
EXPOSE 80
12569

126-
ENTRYPOINT ["/usr/local/bin/akoflow-entrypoint"]
70+
ENTRYPOINT ["/usr/local/bin/akoflow-entrypoint"]

releases/workflow-engine/server.Dockerfile

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,7 @@ RUN git checkout main
1111
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o akoflow-server ./cmd/server
1212
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o akoflow ./cmd/client
1313

14-
FROM debian:bookworm-slim
15-
16-
RUN apt-get update && apt-get install -y \
17-
ca-certificates \
18-
curl \
19-
unzip \
20-
sqlite3 \
21-
ssh \
22-
sshpass \
23-
rsync \
24-
&& rm -rf /var/lib/apt/lists/*
14+
FROM akoflow/base-workflow-engine:latest
2515

2616
WORKDIR /app
2717

@@ -35,4 +25,4 @@ RUN echo "main" > /app/AKOFLOW_VERSION
3525

3626
EXPOSE 8080
3727

38-
ENTRYPOINT ["/bin/sh", "-c", "echo Running AkôFlow version: $(cat /app/AKOFLOW_VERSION) && exec akoflow-server"]
28+
ENTRYPOINT ["/bin/sh", "-c", "echo Running AkôFlow version: $(cat /app/AKOFLOW_VERSION) && exec akoflow-server"]

0 commit comments

Comments
 (0)