mirror of
https://git.tt-rss.org/fox/tt-rss.git
synced 2025-08-06 22:27:42 +02:00
add APP_WEB_ROOT to fpm container
This commit is contained in:
parent
819fde7318
commit
b29de3eb7c
@ -7,6 +7,7 @@ ARG ALPINE_MIRROR
|
||||
|
||||
ENV SCRIPT_ROOT=/opt/tt-rss
|
||||
ENV SRC_DIR=/src/tt-rss/
|
||||
ENV APP_WEB_ROOT=/var/www/html
|
||||
|
||||
# Used to centralize the PHP version suffix for packages and paths
|
||||
ENV PHP_SUFFIX=84
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
DST_DIR=/backups
|
||||
KEEP_DAYS=28
|
||||
APP_ROOT=/var/www/html/tt-rss
|
||||
APP_ROOT=$APP_WEB_ROOT/tt-rss
|
||||
|
||||
if pg_isready -h $TTRSS_DB_HOST -U $TTRSS_DB_USER -p $TTRSS_DB_PORT; then
|
||||
DST_FILE=ttrss-backup-$(date +%Y%m%d).sql.gz
|
||||
|
@ -11,18 +11,18 @@ unset HTTP_HOST
|
||||
|
||||
if ! id app >/dev/null 2>&1; then
|
||||
addgroup -g $OWNER_GID app
|
||||
adduser -D -h /var/www/html -G app -u $OWNER_UID app
|
||||
adduser -D -h $APP_WEB_ROOT -G app -u $OWNER_UID app
|
||||
fi
|
||||
|
||||
update-ca-certificates || true
|
||||
|
||||
DST_DIR=/var/www/html/tt-rss
|
||||
DST_DIR=$APP_WEB_ROOT/tt-rss
|
||||
|
||||
[ -e $DST_DIR ] && rm -f $DST_DIR/.app_is_ready
|
||||
|
||||
export PGPASSWORD=$TTRSS_DB_PASS
|
||||
|
||||
[ ! -e /var/www/html/index.php ] && cp ${SCRIPT_ROOT}/index.php /var/www/html
|
||||
[ ! -e $APP_WEB_ROOT/index.php ] && cp ${SCRIPT_ROOT}/index.php $APP_WEB_ROOT
|
||||
|
||||
if [ -z $SKIP_RSYNC_ON_STARTUP ]; then
|
||||
if [ ! -d $DST_DIR ]; then
|
||||
|
@ -12,7 +12,7 @@ sleep 30
|
||||
|
||||
if ! id app; then
|
||||
addgroup -g $OWNER_GID app
|
||||
adduser -D -h /var/www/html -G app -u $OWNER_UID app
|
||||
adduser -D -h $APP_WEB_ROOT -G app -u $OWNER_UID app
|
||||
fi
|
||||
|
||||
while ! pg_isready -h $TTRSS_DB_HOST -U $TTRSS_DB_USER -p $TTRSS_DB_PORT; do
|
||||
@ -23,11 +23,11 @@ done
|
||||
sed -i.bak "s/^\(memory_limit\) = \(.*\)/\1 = ${PHP_WORKER_MEMORY_LIMIT}/" \
|
||||
/etc/php${PHP_SUFFIX}/php.ini
|
||||
|
||||
DST_DIR=/var/www/html/tt-rss
|
||||
DST_DIR=$APP_WEB_ROOT/tt-rss
|
||||
|
||||
while [ ! -s $DST_DIR/config.php -a -e $DST_DIR/.app_is_ready ]; do
|
||||
echo waiting for app container...
|
||||
sleep 3
|
||||
done
|
||||
|
||||
sudo -E -u app "${TTRSS_PHP_EXECUTABLE}" /var/www/html/tt-rss/update_daemon2.php "$@"
|
||||
sudo -E -u app "${TTRSS_PHP_EXECUTABLE}" $APP_WEB_ROOT/tt-rss/update_daemon2.php "$@"
|
||||
|
@ -118,6 +118,8 @@ phpunit-integration:
|
||||
AUTO_CREATE_USER_PASS: 'test'
|
||||
AUTO_CREATE_USER_ACCESS_LEVEL: '10'
|
||||
AUTO_CREATE_USER_ENABLE_API: 'true'
|
||||
API_URL: http://web-nginx/tt-rss/api/
|
||||
HEALTHCHECK_URL: http://web-nginx/tt-rss/public.php?op=healthcheck
|
||||
services:
|
||||
- name: registry.fakecake.org/docker.io/postgres:15-alpine
|
||||
alias: db
|
||||
@ -128,12 +130,12 @@ phpunit-integration:
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH && $REGISTRY_USER != null
|
||||
script:
|
||||
- export API_URL="http://web-nginx/tt-rss/api/"
|
||||
- |
|
||||
for a in `seq 1 15`; do
|
||||
php83 vendor/bin/phpunit --group integration --do-not-cache-result --log-junit phpunit-report.xml --coverage-cobertura phpunit-coverage.xml --coverage-text --colors=never && exit 0
|
||||
sleep 10
|
||||
curl -fvs ${HEALTHCHECK_URL} && break
|
||||
sleep 5
|
||||
done
|
||||
- php83 vendor/bin/phpunit --group integration --do-not-cache-result --log-junit phpunit-report.xml --coverage-cobertura phpunit-coverage.xml --coverage-text --colors=never
|
||||
artifacts:
|
||||
when: always
|
||||
reports:
|
||||
|
245
.gitlab-ci.yml~
Normal file
245
.gitlab-ci.yml~
Normal file
@ -0,0 +1,245 @@
|
||||
stages:
|
||||
- lint
|
||||
- build
|
||||
- push
|
||||
- test
|
||||
- publish
|
||||
|
||||
variables:
|
||||
ESLINT_PATHS: js plugins
|
||||
REGISTRY_PROJECT: cthulhoo
|
||||
IMAGE_TAR_FPM: image-fpm.tar
|
||||
IMAGE_TAR_WEB: image-web.tar
|
||||
|
||||
include:
|
||||
- project: 'ci/ci-templates'
|
||||
ref: master
|
||||
file: .ci-build-docker-kaniko.yml
|
||||
- project: 'ci/ci-templates'
|
||||
ref: master
|
||||
file: .ci-registry-push.yml
|
||||
- project: 'ci/ci-templates'
|
||||
ref: master
|
||||
file: .ci-lint-common.yml
|
||||
- project: 'ci/ci-templates'
|
||||
ref: master
|
||||
file: .ci-integration-test.yml
|
||||
- project: 'ci/ci-templates'
|
||||
ref: master
|
||||
file: .ci-update-helm-imagetag.yml
|
||||
|
||||
# phpunit:
|
||||
# extends: .phpunit
|
||||
# variables:
|
||||
# PHPUNIT_ARGS: --exclude integration --coverage-filter classes --coverage-filter include
|
||||
|
||||
# eslint:
|
||||
# extends: .eslint
|
||||
|
||||
# phpstan:
|
||||
# extends: .phpstan
|
||||
|
||||
ttrss-fpm-pgsql-static:build:
|
||||
extends: .build-docker-kaniko-no-push
|
||||
variables:
|
||||
DOCKERFILE: ${CI_PROJECT_DIR}/.docker/app/Dockerfile
|
||||
IMAGE_TAR: ${IMAGE_TAR_FPM}
|
||||
|
||||
ttrss-fpm-pgsql-static:push-master-commit-only:
|
||||
extends: .crane-image-registry-push-master-commit-only
|
||||
variables:
|
||||
IMAGE_TAR: ${IMAGE_TAR_FPM}
|
||||
needs:
|
||||
- job: ttrss-fpm-pgsql-static:build
|
||||
|
||||
ttrss-fpm-pgsql-static:push-branch:
|
||||
extends: .crane-image-registry-push-branch
|
||||
variables:
|
||||
IMAGE_TAR: ${IMAGE_TAR_FPM}
|
||||
needs:
|
||||
- job: ttrss-fpm-pgsql-static:build
|
||||
|
||||
ttrss-web-nginx:build:
|
||||
extends: .build-docker-kaniko-no-push
|
||||
variables:
|
||||
DOCKERFILE: ${CI_PROJECT_DIR}/.docker/web-nginx/Dockerfile
|
||||
IMAGE_TAR: ${IMAGE_TAR_WEB}
|
||||
|
||||
ttrss-web-nginx:push-master-commit-only:
|
||||
extends: .crane-image-registry-push-master-commit-only
|
||||
variables:
|
||||
IMAGE_TAR: ${IMAGE_TAR_WEB}
|
||||
needs:
|
||||
- job: ttrss-web-nginx:build
|
||||
|
||||
ttrss-web-nginx:push-branch:
|
||||
extends: .crane-image-registry-push-branch
|
||||
variables:
|
||||
IMAGE_TAR: ${IMAGE_TAR_WEB}
|
||||
needs:
|
||||
- job: ttrss-web-nginx:build
|
||||
|
||||
# phpdoc:build:
|
||||
# image: ${PHP_IMAGE}
|
||||
# stage: publish
|
||||
# rules:
|
||||
# - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
# script:
|
||||
# - php83 /phpDocumentor.phar -d classes -d include -t phpdoc --visibility=public
|
||||
# artifacts:
|
||||
# paths:
|
||||
# - phpdoc
|
||||
|
||||
# phpdoc:publish:
|
||||
# extends: .build-docker-kaniko
|
||||
# stage: publish
|
||||
# needs:
|
||||
# - job: phpdoc:build
|
||||
# rules:
|
||||
# - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $REGISTRY_USER != null && $REGISTRY_PASSWORD != null
|
||||
# variables:
|
||||
# DOCKERFILE: ${CI_PROJECT_DIR}/.docker/phpdoc/Dockerfile
|
||||
# NAME: ttrss-phpdoc
|
||||
# VERSION: latest
|
||||
|
||||
phpunit-integration:
|
||||
image: ${PHP_IMAGE}
|
||||
variables:
|
||||
POSTGRES_DB: postgres
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: password
|
||||
TTRSS_DB_HOST: db
|
||||
TTRSS_DB_USER: ${POSTGRES_USER}
|
||||
TTRSS_DB_NAME: ${POSTGRES_DB}
|
||||
TTRSS_DB_PASS: ${POSTGRES_PASSWORD}
|
||||
FF_NETWORK_PER_BUILD: "true"
|
||||
APP_WEB_ROOT: /builds/shared-root
|
||||
AUTO_CREATE_USER: test
|
||||
AUTO_CREATE_USER_PASS: 'test'
|
||||
AUTO_CREATE_USER_ACCESS_LEVEL: '10'
|
||||
AUTO_CREATE_USER_ENABLE_API: 'true'
|
||||
services:
|
||||
- name: registry.fakecake.org/docker.io/postgres:15-alpine
|
||||
alias: db
|
||||
- name: registry.fakecake.org/cthulhoo/ttrss-fpm-pgsql-static:${CI_COMMIT_SHORT_SHA}
|
||||
alias: app
|
||||
- name: registry.fakecake.org/cthulhoo/ttrss-web-nginx:${CI_COMMIT_SHORT_SHA}
|
||||
alias: web-nginx
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH && $REGISTRY_USER != null
|
||||
script:
|
||||
- export API_URL="http://web-nginx/tt-rss/api/"
|
||||
- |
|
||||
for a in `seq 1 15`; do
|
||||
php83 vendor/bin/phpunit --group integration --do-not-cache-result --log-junit phpunit-report.xml --coverage-cobertura phpunit-coverage.xml --coverage-text --colors=never && exit 0
|
||||
sleep 10
|
||||
done
|
||||
artifacts:
|
||||
when: always
|
||||
reports:
|
||||
junit: phpunit-report.xml
|
||||
coverage_report:
|
||||
coverage_format: cobertura
|
||||
path: phpunit-coverage.xml
|
||||
coverage: '/^\s*Lines:\s*\d+.\d+\%/'
|
||||
|
||||
# selenium:
|
||||
# image: ${SELENIUM_IMAGE}
|
||||
# variables:
|
||||
# TEST_HELM_REPO: oci://registry.fakecake.org/infra/helm-charts/tt-rss
|
||||
# SELENIUM_GRID_ENDPOINT: http://selenium-hub.selenium-grid.svc.cluster.local:4444/wd/hub
|
||||
# extends: .integration-test
|
||||
# script:
|
||||
# - export K8S_NAMESPACE=$(kubectl get pods -o=custom-columns=NS:.metadata.namespace | tail -1)
|
||||
# - |
|
||||
# for i in `seq 1 3`; do
|
||||
# echo attempt $i...
|
||||
# python3 tests/integration/selenium_test.py && break
|
||||
# sleep 3
|
||||
# done
|
||||
# needs:
|
||||
# - job: phpunit-integration
|
||||
# artifacts:
|
||||
# when: always
|
||||
# reports:
|
||||
# junit: selenium-report.xml
|
||||
|
||||
# ttrss-fpm-pgsql-static:publish:
|
||||
# stage: publish
|
||||
# extends: .crane-image-registry-push-master
|
||||
# variables:
|
||||
# IMAGE_TAR: ${IMAGE_TAR_FPM}
|
||||
# needs:
|
||||
# - job: ttrss-fpm-pgsql-static:build
|
||||
# - job: phpunit-integration
|
||||
# - job: selenium
|
||||
|
||||
# ttrss-fpm-pgsql-static:publish-docker-hub:
|
||||
# stage: publish
|
||||
# extends: .crane-image-registry-push-master-docker-hub
|
||||
# variables:
|
||||
# IMAGE_TAR: ${IMAGE_TAR_FPM}
|
||||
# needs:
|
||||
# - job: ttrss-fpm-pgsql-static:build
|
||||
# - job: phpunit-integration
|
||||
# - job: selenium
|
||||
|
||||
# ttrss-fpm-pgsql-static:publish-gitlab:
|
||||
# stage: publish
|
||||
# extends: .crane-image-registry-push-master-gitlab
|
||||
# variables:
|
||||
# IMAGE_TAR: ${IMAGE_TAR_FPM}
|
||||
# needs:
|
||||
# - job: ttrss-fpm-pgsql-static:build
|
||||
# - job: phpunit-integration
|
||||
# - job: selenium
|
||||
|
||||
# ttrss-web-nginx:publish:
|
||||
# stage: publish
|
||||
# extends: .crane-image-registry-push-master
|
||||
# variables:
|
||||
# IMAGE_TAR: ${IMAGE_TAR_WEB}
|
||||
# needs:
|
||||
# - job: ttrss-web-nginx:build
|
||||
# - job: phpunit-integration
|
||||
# - job: selenium
|
||||
|
||||
# ttrss-web-nginx:publish-docker-hub:
|
||||
# stage: publish
|
||||
# extends: .crane-image-registry-push-master-docker-hub
|
||||
# variables:
|
||||
# IMAGE_TAR: ${IMAGE_TAR_WEB}
|
||||
# needs:
|
||||
# - job: ttrss-web-nginx:build
|
||||
# - job: phpunit-integration
|
||||
# - job: selenium
|
||||
|
||||
# ttrss-web-nginx:publish-gitlab:
|
||||
# stage: publish
|
||||
# extends: .crane-image-registry-push-master-gitlab
|
||||
# variables:
|
||||
# IMAGE_TAR: ${IMAGE_TAR_WEB}
|
||||
# needs:
|
||||
# - job: ttrss-web-nginx:build
|
||||
# - job: phpunit-integration
|
||||
# - job: selenium
|
||||
|
||||
# update-demo:
|
||||
# stage: publish
|
||||
# extends: .update-helm-imagetag
|
||||
# variables:
|
||||
# CHART_REPO: gitlab.fakecake.org/git/helm-charts/tt-rss.git
|
||||
# CHART_VALUES: values-demo.yaml
|
||||
# ACCESS_TOKEN: ${DEMO_HELM_TOKEN}
|
||||
# rules:
|
||||
# - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $DEMO_HELM_TOKEN != null
|
||||
|
||||
# update-prod:
|
||||
# stage: publish
|
||||
# extends: .update-helm-imagetag
|
||||
# variables:
|
||||
# CHART_REPO: gitlab.fakecake.org/git/helm-charts/tt-rss-prod.git
|
||||
# CHART_VALUES: values-prod.yaml
|
||||
# ACCESS_TOKEN: ${PROD_HELM_TOKEN}
|
||||
# rules:
|
||||
# - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $PROD_HELM_TOKEN != null
|
Loading…
Reference in New Issue
Block a user