Feat(domserver): docker compose testing #1
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
group_vars/*/secret.yml
|
||||
6
playbooks/domserver.yml
Normal file
6
playbooks/domserver.yml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
- name: Install domserver
|
||||
hosts: domserver
|
||||
roles:
|
||||
- role: install_packages
|
||||
- role: configure_domserver
|
||||
8
playbooks/uninstall.yml
Normal file
8
playbooks/uninstall.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
---
|
||||
- name: Uninstall domserver
|
||||
hosts: domserver
|
||||
tasks:
|
||||
- name: Remove docker directory
|
||||
ansible.builtin.file:
|
||||
path: "{{ domjudge_base_dir }}"
|
||||
state: absent
|
||||
@@ -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
|
||||
; largest expected program output.
|
||||
php_admin_value[memory_limit] = 4096M
|
||||
php_admin_value[upload_max_filesize] = 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
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
ansible.builtin.file:
|
||||
path: "{{ domjudge_base_dir }}"
|
||||
state: directory
|
||||
mode: '0755'
|
||||
mode: '0750'
|
||||
owner: root
|
||||
group: root
|
||||
group: docker
|
||||
- name: Install domjudge docker compose
|
||||
notify:
|
||||
- Restart domjudge docker compose
|
||||
@@ -20,15 +20,17 @@
|
||||
- name: Install mysql config
|
||||
ansible.builtin.copy:
|
||||
src: config/mysql
|
||||
dest: "{{ domjudge_base_dir }}/config/mysql"
|
||||
mode: '0755'
|
||||
dest: "{{ domjudge_base_dir }}/config"
|
||||
mode: '0644'
|
||||
directory_mode: '0755'
|
||||
owner: root
|
||||
group: root
|
||||
- name: Install domserver php config
|
||||
ansible.builtin.copy:
|
||||
src: config/php
|
||||
dest: "{{ domjudge_base_dir }}/config/php"
|
||||
mode: '0755'
|
||||
dest: "{{ domjudge_base_dir }}/config"
|
||||
mode: '0644'
|
||||
directory_mode: '0755'
|
||||
owner: root
|
||||
group: root
|
||||
- name: Enable and start docker
|
||||
@@ -36,3 +38,6 @@
|
||||
name: docker.service
|
||||
state: started
|
||||
enabled: true
|
||||
- name: Run docker compose up
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: "{{ domjudge_base_dir }}"
|
||||
|
||||
@@ -11,11 +11,7 @@ services:
|
||||
- "./data/mariadb:/var/lib/mysql"
|
||||
- "./config/mysql:/etc/mysql/conf.d:ro"
|
||||
domserver:
|
||||
build:
|
||||
context: .
|
||||
dockerfile_inline: |
|
||||
FROM domjudge/domserver:{{ domserver_version }}
|
||||
COPY ./config/php/domjudge.conf /etc/php/8.2/fpm/pool.d/domjudge.conf
|
||||
image: domjudge/domserver:{{ domserver_version }}
|
||||
environment:
|
||||
MYSQL_HOST: mariadb
|
||||
MYSQL_USER: domjudge
|
||||
@@ -24,5 +20,9 @@ services:
|
||||
MYSQL_ROOT_PASSWORD: "{{ mysql_root_password }}"
|
||||
CONTAINER_TIMEZONE: Asia/Taipei
|
||||
restart: always
|
||||
volumes:
|
||||
- "./config/php/domjudge.conf:/etc/php/8.2/fpm/pool.d/domjudge.conf"
|
||||
depends_on:
|
||||
- mariadb
|
||||
ports:
|
||||
- "8080:80"
|
||||
- "127.0.0.1:8080:80"
|
||||
|
||||
@@ -6,4 +6,8 @@
|
||||
community.general.pacman:
|
||||
pkg:
|
||||
- docker
|
||||
- docker-compose
|
||||
- docker-buildx
|
||||
notify: Upgrade packages
|
||||
- name: Flush handlers
|
||||
ansible.builtin.meta: flush_handlers
|
||||
|
||||
Reference in New Issue
Block a user