mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-17 12:42:15 +01:00
Fix ARM image
This commit is contained in:
committed by
Constantin Graf
parent
32c7e55a15
commit
9d279d4980
90
.github/workflows/build-public-release.yml
vendored
90
.github/workflows/build-public-release.yml
vendored
@@ -1,90 +0,0 @@
|
|||||||
on:
|
|
||||||
push:
|
|
||||||
tags:
|
|
||||||
- '*'
|
|
||||||
pull_request:
|
|
||||||
paths:
|
|
||||||
- '.github/workflows/build-public.yml'
|
|
||||||
- 'docker/prod/**'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
name: Build - Public (Release)
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
packages: write
|
|
||||||
contents: read
|
|
||||||
attestations: write
|
|
||||||
id-token: write
|
|
||||||
timeout-minutes: 90
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: "Check out code"
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: "Copy .env template for production"
|
|
||||||
run: cp .env.production .env
|
|
||||||
|
|
||||||
- name: "Install dependencies"
|
|
||||||
uses: php-actions/composer@v6
|
|
||||||
if: steps.cache-vendor.outputs.cache-hit != 'true' # Skip if cache hit
|
|
||||||
with:
|
|
||||||
command: install
|
|
||||||
only_args: --no-dev --no-ansi --no-interaction --prefer-dist --ignore-platform-reqs --classmap-authoritative
|
|
||||||
php_version: 8.3
|
|
||||||
|
|
||||||
- name: "Use Node.js"
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: '20.x'
|
|
||||||
|
|
||||||
- name: "Install npm dependencies"
|
|
||||||
run: npm ci
|
|
||||||
|
|
||||||
- name: "Build"
|
|
||||||
run: npm run build
|
|
||||||
|
|
||||||
- name: "Login to GitHub Container Registry"
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
||||||
- name: "Login to GitHub Container Registry"
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: ghcr.io
|
|
||||||
username: ${{ github.actor }}
|
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
- name: "Docker meta"
|
|
||||||
id: "meta"
|
|
||||||
uses: docker/metadata-action@v5
|
|
||||||
with:
|
|
||||||
images: |
|
|
||||||
solidtime/solidtime
|
|
||||||
ghcr.io/${{ github.repository }}
|
|
||||||
tags: |
|
|
||||||
type=ref,event=branch
|
|
||||||
type=ref,event=pr
|
|
||||||
type=semver,pattern={{version}}
|
|
||||||
type=semver,pattern={{major}}.{{minor}}
|
|
||||||
|
|
||||||
- name: "Set up QEMU"
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
|
|
||||||
- name: "Set up Docker Buildx"
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: "Build and push"
|
|
||||||
uses: docker/build-push-action@v6
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
file: docker/prod/Dockerfile
|
|
||||||
build-args: |
|
|
||||||
DOCKER_FILES_BASE_PATH=docker/prod/
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
push: true
|
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
|
||||||
cache-from: type=gha
|
|
||||||
cache-to: type=gha,mode=max
|
|
||||||
2
.github/workflows/build-public.yml
vendored
2
.github/workflows/build-public.yml
vendored
@@ -3,6 +3,8 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
- develop
|
- develop
|
||||||
|
tags:
|
||||||
|
- '*'
|
||||||
pull_request:
|
pull_request:
|
||||||
paths:
|
paths:
|
||||||
- '.github/workflows/build-public.yml'
|
- '.github/workflows/build-public.yml'
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ FROM composer:${COMPOSER_VERSION} AS vendor
|
|||||||
FROM dunglas/frankenphp:${FRANKENPHP_VERSION}-php${PHP_VERSION}
|
FROM dunglas/frankenphp:${FRANKENPHP_VERSION}-php${PHP_VERSION}
|
||||||
|
|
||||||
ARG DOCKER_FILES_BASE_PATH
|
ARG DOCKER_FILES_BASE_PATH
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
|
||||||
LABEL maintainer="solidtime <hello@solidtime.io>"
|
LABEL maintainer="solidtime <hello@solidtime.io>"
|
||||||
LABEL org.opencontainers.image.title="solidtime"
|
LABEL org.opencontainers.image.title="solidtime"
|
||||||
@@ -77,6 +78,7 @@ RUN apt-get update; \
|
|||||||
apt-get install -yqq --no-install-recommends --show-progress \
|
apt-get install -yqq --no-install-recommends --show-progress \
|
||||||
apt-utils \
|
apt-utils \
|
||||||
curl \
|
curl \
|
||||||
|
gcc \
|
||||||
wget \
|
wget \
|
||||||
nano \
|
nano \
|
||||||
ncdu \
|
ncdu \
|
||||||
@@ -133,6 +135,16 @@ RUN chown -R ${USER}:${USER} ${ROOT} /var/{log,run} \
|
|||||||
|
|
||||||
RUN cp ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
|
RUN cp ${PHP_INI_DIR}/php.ini-production ${PHP_INI_DIR}/php.ini
|
||||||
|
|
||||||
|
COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/php.ini ${PHP_INI_DIR}/conf.d/99-octane-default.ini
|
||||||
|
COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/php-arm.ini ${PHP_INI_DIR}/conf.d/99-octane-arm.ini
|
||||||
|
|
||||||
|
RUN echo "TARGETPLATFORM is equal to ${TARGETPLATFORM}"
|
||||||
|
RUN if [ "${TARGETPLATFORM}" = "linux/arm64" ]; then \
|
||||||
|
rm ${PHP_INI_DIR}/conf.d/99-octane-default.ini; \
|
||||||
|
else \
|
||||||
|
rm ${PHP_INI_DIR}/conf.d/99-octane-arm.ini; \
|
||||||
|
fi
|
||||||
|
|
||||||
USER ${USER}
|
USER ${USER}
|
||||||
|
|
||||||
COPY --chown=${USER}:${USER} --from=vendor /usr/bin/composer /usr/bin/composer
|
COPY --chown=${USER}:${USER} --from=vendor /usr/bin/composer /usr/bin/composer
|
||||||
@@ -158,7 +170,6 @@ COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/supervisord.con
|
|||||||
COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/octane/FrankenPHP/supervisord.frankenphp.conf /etc/supervisor/conf.d/
|
COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/octane/FrankenPHP/supervisord.frankenphp.conf /etc/supervisor/conf.d/
|
||||||
COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/supervisord.*.conf /etc/supervisor/conf.d/
|
COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/supervisord.*.conf /etc/supervisor/conf.d/
|
||||||
COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/start-container /usr/local/bin/start-container
|
COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/start-container /usr/local/bin/start-container
|
||||||
COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/php.ini ${PHP_INI_DIR}/conf.d/99-octane.ini
|
|
||||||
|
|
||||||
# FrankenPHP embedded PHP configuration
|
# FrankenPHP embedded PHP configuration
|
||||||
COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/php.ini /lib/php.ini
|
COPY --chown=${USER}:${USER} ${DOCKER_FILES_BASE_PATH}deployment/php.ini /lib/php.ini
|
||||||
|
|||||||
30
docker/prod/deployment/php-arm.ini
Normal file
30
docker/prod/deployment/php-arm.ini
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
[PHP]
|
||||||
|
post_max_size = 100M
|
||||||
|
upload_max_filesize = 100M
|
||||||
|
expose_php = 0
|
||||||
|
realpath_cache_size = 16M
|
||||||
|
realpath_cache_ttl = 360
|
||||||
|
max_input_time = 5
|
||||||
|
|
||||||
|
[Opcache]
|
||||||
|
opcache.enable = 1
|
||||||
|
opcache.enable_cli = 1
|
||||||
|
opcache.memory_consumption = 256M
|
||||||
|
opcache.use_cwd = 0
|
||||||
|
opcache.max_file_size = 0
|
||||||
|
opcache.max_accelerated_files = 32531
|
||||||
|
opcache.validate_timestamps = 0
|
||||||
|
opcache.file_update_protection = 0
|
||||||
|
opcache.interned_strings_buffer = 16
|
||||||
|
opcache.file_cache = 60
|
||||||
|
|
||||||
|
[JIT]
|
||||||
|
opcache.jit_buffer_size = 128M
|
||||||
|
opcache.jit = disable
|
||||||
|
opcache.jit_prof_threshold = 0.001
|
||||||
|
opcache.jit_max_root_traces = 2048
|
||||||
|
opcache.jit_max_side_traces = 256
|
||||||
|
|
||||||
|
[zlib]
|
||||||
|
zlib.output_compression = On
|
||||||
|
zlib.output_compression_level = 9
|
||||||
Reference in New Issue
Block a user