feat: mount config file instead of passing env
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Baoshuo Ren 2023-01-15 18:53:06 +08:00
parent 3c2ab13e0d
commit fadf722527
Signed by: baoshuo
GPG Key ID: 00CB9680AB29F51A
6 changed files with 58 additions and 41 deletions

45
.config.php Normal file
View File

@ -0,0 +1,45 @@
<?php
return [
'profile' => [
'oj-name' => '石家庄二中信息学在线评测系统',
'oj-name-short' => 'S2OJ',
'administrator' => 'root',
'admin-email' => 'admin@sjzezoj.com',
'QQ-group' => '',
'ICP-license' => '冀ICP备2020028886号',
],
'database' => [
'database' => 'app_uoj233',
'username' => 'root',
'password' => 'root',
'host' => 'uoj-db',
'port' => '3306',
],
'security' => [
'user' => [
'client_salt' => 'salt_0',
],
'cookie' => [
'checksum_salt' => ['salt_1', 'salt_2', 'salt_3'],
],
],
'mail' => [
'noreply' => [
'username' => 'noreply@local_uoj.ac',
'password' => '_mail_noreply_password_',
'host' => 'smtp.local_uoj.ac',
'secure' => 'tls',
'port' => 587,
]
],
'judger' => [
'socket' => [
'port' => '2333',
'password' => '_judger_socket_password_'
],
],
'switch' => [
'blog-domain-mode' => 3,
'open-register' => false,
],
];

1
.gitignore vendored
View File

@ -3,3 +3,4 @@ uoj_data_1/
uoj_data_2/ uoj_data_2/
.php-cs-fixer.cache .php-cs-fixer.cache
docker-compose.local.yml docker-compose.local.yml
.config.php

View File

@ -60,15 +60,6 @@ services:
volumes: volumes:
- ./uoj_data/web/data:/var/uoj_data - ./uoj_data/web/data:/var/uoj_data
- ./uoj_data/web/storage:/opt/uoj/web/app/storage - ./uoj_data/web/storage:/opt/uoj/web/app/storage
- ./.config.php:/opt/uoj/web/app/.config.php
ports: ports:
- "80:80" - "80:80"
environment:
- UOJ_PROTOCOL=http
- DATABASE_HOST=uoj-db
- DATABASE_PASSWORD=root
- JUDGER_SOCKET_PORT=2333
- JUDGER_SOCKET_PASSWORD=_judger_socket_password_
- SALT_0=salt_0
- SALT_1=salt_1
- SALT_2=salt_2
- SALT_3=salt_3

View File

@ -43,15 +43,6 @@ services:
volumes: volumes:
- ./uoj_data/web/data:/var/uoj_data - ./uoj_data/web/data:/var/uoj_data
- ./uoj_data/web/storage:/opt/uoj/web/app/storage - ./uoj_data/web/storage:/opt/uoj/web/app/storage
- ./.config.php:/opt/uoj/web/app/.config.php
ports: ports:
- "80:80" - "80:80"
environment:
- UOJ_PROTOCOL=https
- DATABASE_HOST=uoj-db
- DATABASE_PASSWORD=root
- JUDGER_SOCKET_PORT=2333
- JUDGER_SOCKET_PASSWORD=_judger_socket_password_
- SALT_0=salt_0
- SALT_1=salt_1
- SALT_2=salt_2
- SALT_3=salt_3

View File

@ -20,21 +20,21 @@ return [
'domain' => null, 'domain' => null,
'main' => [ 'main' => [
'protocol' => 'http', 'protocol' => 'http',
'host' => '_httpHost_', 'host' => UOJContext::requestDomain(),
'port' => '80/443' 'port' => '80/443',
], ],
'blog' => [ 'blog' => [
'protocol' => 'http', 'protocol' => 'http',
'host' => '_httpHost_', 'host' => UOJContext::requestDomain(),
'port' => '80/443' 'port' => '80/443',
] ]
], ],
'security' => [ 'security' => [
'user' => [ 'user' => [
'client_salt' => 'salt0' 'client_salt' => 'salt0',
], ],
'cookie' => [ 'cookie' => [
'checksum_salt' => ['salt1', 'salt2', 'salt3'] 'checksum_salt' => ['salt1', 'salt2', 'salt3'],
], ],
], ],
'mail' => [ 'mail' => [
@ -43,17 +43,17 @@ return [
'password' => '_mail_noreply_password_', 'password' => '_mail_noreply_password_',
'host' => 'smtp.local_uoj.ac', 'host' => 'smtp.local_uoj.ac',
'secure' => 'tls', 'secure' => 'tls',
'port' => 587 'port' => 587,
] ]
], ],
'judger' => [ 'judger' => [
'socket' => [ 'socket' => [
'port' => '233', 'port' => '233',
'password' => '_judger_socket_password_' 'password' => '_judger_socket_password_',
] ]
], ],
'switch' => [ 'switch' => [
'blog-domain-mode' => 3, 'blog-domain-mode' => 3,
'open-register' => false 'open-register' => false,
] ],
]; ];

View File

@ -60,14 +60,6 @@ setWebConf(){
# Set webroot path # Set webroot path
ln -sf /opt/uoj/web /var/www/uoj ln -sf /opt/uoj/web /var/www/uoj
chown -R www-data /var/www/uoj/app/storage chown -R www-data /var/www/uoj/app/storage
# Set web config file
php7.4 -a <<UOJEOF
\$config = include '/var/www/uoj/app/.default-config.php';
\$config['database']['host']='$_database_host_';
\$config['database']['password']='$_database_password_';
\$config['judger']['socket']['port']='$_judger_socket_port_';
file_put_contents('/var/www/uoj/app/.config.php', "<?php\nreturn ".str_replace('\'_httpHost_\'','UOJContext::requestDomain()',var_export(\$config, true)).";\n");
UOJEOF
# Prepare local sandbox # Prepare local sandbox
cd /opt/uoj/judger/uoj_judger cd /opt/uoj/judger/uoj_judger
cat >include/uoj_work_path.h <<UOJEOF cat >include/uoj_work_path.h <<UOJEOF
@ -84,9 +76,6 @@ initProgress(){
#Set uoj_data path #Set uoj_data path
mkdir -p /var/uoj_data/upload mkdir -p /var/uoj_data/upload
chown -R www-data:www-data /var/uoj_data chown -R www-data:www-data /var/uoj_data
#Replace password placeholders
sed -i -e "s/salt0/$_salt0_/g" -e "s/salt1/$_salt1_/g" -e "s/salt2/$_salt2_/g" -e "s/salt3/$_salt3_/g" -e "s/_judger_socket_password_/$_judger_socket_password_/g" /var/www/uoj/app/.config.php
sed -i -e "s/'protocol' => 'http'/'protocol' => '$_uoj_protocol_'/g" /var/www/uoj/app/.config.php
#Start services #Start services
service ntp restart service ntp restart
service apache2 restart service apache2 restart