Fix(domserver): php being php

This commit is contained in:
2025-04-06 19:05:13 +08:00
parent 21a5b1b4f6
commit 81c23bc103
7 changed files with 66 additions and 12 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
group_vars/*/secret.yml

6
playbooks/domserver.yml Normal file
View File

@@ -0,0 +1,6 @@
---
- name: Install domserver
hosts: domserver
roles:
- role: install_packages
- role: configure_domserver

8
playbooks/uninstall.yml Normal file
View File

@@ -0,0 +1,8 @@
---
- name: Uninstall domserver
hosts: domserver
tasks:
- name: Remove docker directory
ansible.builtin.file:
path: "{{ domjudge_base_dir }}"
state: absent

View File

@@ -1,5 +1,35 @@
; Generated from 'domjudge-fpm.conf.in' on Sat Mar 15 17:12:25 UTC 2025.
; PHP-FPM configuration for DOMjudge
[domjudge]
user = www-data
group = www-data
listen = /var/run/php-fpm-domjudge.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
pm = static
pm.max_children = 40
pm.max_requests = 5000
pm.status_path = /fpm_status
request_slowlog_timeout = 10s
slowlog = /var/log/php-fpm-domjudge.log.slow
php_flag[display_errors] = off
php_admin_flag[log_errors] = on
php_admin_value[error_log] = /var/log/fpm-php.domjudge.log
; Set these three to be at least the size of your largest testcase and ; Set these three to be at least the size of your largest testcase and
; largest expected program output. ; largest expected program output.
php_admin_value[memory_limit] = 4096M php_admin_value[memory_limit] = 4096M
php_admin_value[upload_max_filesize] = 4096M php_admin_value[upload_max_filesize] = 4096M
php_admin_value[post_max_size] = 4096M php_admin_value[post_max_size] = 4096M
; This must be strictly larger than the configured max number of source
; files a team can submit.
php_admin_value[max_file_uploads] = 101
php_admin_value[date.timezone] = Asia/Taipei

View File

@@ -3,9 +3,9 @@
ansible.builtin.file: ansible.builtin.file:
path: "{{ domjudge_base_dir }}" path: "{{ domjudge_base_dir }}"
state: directory state: directory
mode: '0755' mode: '0750'
owner: root owner: root
group: root group: docker
- name: Install domjudge docker compose - name: Install domjudge docker compose
notify: notify:
- Restart domjudge docker compose - Restart domjudge docker compose
@@ -20,15 +20,17 @@
- name: Install mysql config - name: Install mysql config
ansible.builtin.copy: ansible.builtin.copy:
src: config/mysql src: config/mysql
dest: "{{ domjudge_base_dir }}/config/mysql" dest: "{{ domjudge_base_dir }}/config"
mode: '0755' mode: '0644'
directory_mode: '0755'
owner: root owner: root
group: root group: root
- name: Install domserver php config - name: Install domserver php config
ansible.builtin.copy: ansible.builtin.copy:
src: config/php src: config/php
dest: "{{ domjudge_base_dir }}/config/php" dest: "{{ domjudge_base_dir }}/config"
mode: '0755' mode: '0644'
directory_mode: '0755'
owner: root owner: root
group: root group: root
- name: Enable and start docker - name: Enable and start docker
@@ -36,3 +38,6 @@
name: docker.service name: docker.service
state: started state: started
enabled: true enabled: true
- name: Run docker compose up
community.docker.docker_compose_v2:
project_src: "{{ domjudge_base_dir }}"

View File

@@ -11,11 +11,7 @@ services:
- "./data/mariadb:/var/lib/mysql" - "./data/mariadb:/var/lib/mysql"
- "./config/mysql:/etc/mysql/conf.d:ro" - "./config/mysql:/etc/mysql/conf.d:ro"
domserver: domserver:
build: image: domjudge/domserver:{{ domserver_version }}
context: .
dockerfile_inline: |
FROM domjudge/domserver:{{ domserver_version }}
COPY ./config/php/domjudge.conf /etc/php/8.2/fpm/pool.d/domjudge.conf
environment: environment:
MYSQL_HOST: mariadb MYSQL_HOST: mariadb
MYSQL_USER: domjudge MYSQL_USER: domjudge
@@ -24,5 +20,9 @@ services:
MYSQL_ROOT_PASSWORD: "{{ mysql_root_password }}" MYSQL_ROOT_PASSWORD: "{{ mysql_root_password }}"
CONTAINER_TIMEZONE: Asia/Taipei CONTAINER_TIMEZONE: Asia/Taipei
restart: always restart: always
volumes:
- "./config/php/domjudge.conf:/etc/php/8.2/fpm/pool.d/domjudge.conf"
depends_on:
- mariadb
ports: ports:
- "8080:80" - "127.0.0.1:8080:80"

View File

@@ -6,4 +6,8 @@
community.general.pacman: community.general.pacman:
pkg: pkg:
- docker - docker
- docker-compose
- docker-buildx
notify: Upgrade packages notify: Upgrade packages
- name: Flush handlers
ansible.builtin.meta: flush_handlers