forked from mirrors/easyappointments
feat: build server with docker
This commit is contained in:
parent
6b22d0e538
commit
ec683a8c3b
10 changed files with 24806 additions and 5063 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -6,6 +6,7 @@
|
|||
/docs/jsdoc/html
|
||||
/docs/plato/html
|
||||
/docker/mysql/*
|
||||
/docker/build/output/*
|
||||
!/docker/mysql/.gitkeep
|
||||
/node_modules/
|
||||
/npm-debug.log
|
||||
|
|
1824
composer.lock
generated
1824
composer.lock
generated
File diff suppressed because it is too large
Load diff
42
docker/build/Dockerfile
Normal file
42
docker/build/Dockerfile
Normal file
|
@ -0,0 +1,42 @@
|
|||
FROM alpine:latest AS base_php
|
||||
# disable package prompt interaction
|
||||
|
||||
# install runit (init scheme)
|
||||
RUN apk update && apk add \
|
||||
mariadb-client \
|
||||
php7 \
|
||||
php7-mysqli \
|
||||
php7-session \
|
||||
php7-xdebug \
|
||||
php7-opcache \
|
||||
php7-mysqli \
|
||||
php7-mbstring \
|
||||
php7-curl \
|
||||
php7-gd \
|
||||
php7-ctype \
|
||||
php7-dom \
|
||||
php7-json \
|
||||
php7-tokenizer \
|
||||
php7-xmlwriter \
|
||||
php7-xml \
|
||||
tzdata
|
||||
|
||||
#################################################################################################
|
||||
### BUILD DEPLOYABLE APP ######################################################
|
||||
#################################################################################################
|
||||
FROM base_php AS prep_app
|
||||
|
||||
RUN adduser -D builder
|
||||
RUN apk update && apk add npm composer
|
||||
|
||||
USER builder
|
||||
WORKDIR /sources
|
||||
# COPY --chown=builder sources/ /sources
|
||||
|
||||
# Prepare the building process
|
||||
RUN npm install && composer install
|
||||
|
||||
# Build
|
||||
RUN npm run build \
|
||||
&& cd /sources/build \
|
||||
&& chmod -R a+rX,o-w .
|
46
docker/build/docker.sh
Executable file
46
docker/build/docker.sh
Executable file
|
@ -0,0 +1,46 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Approximately 10min (tested with 4vcpu / 8GB RAM / 30Mbps network speed)
|
||||
# Docker commands (will be converted to dockerfile)
|
||||
if [[ $(pwd) != *iflrandevu/docker/build ]]; then
|
||||
echo "PLEASE CHANGE DIRECTORY TO \`iflrandevu/docker/build\` BEFORE STARTING SCRIPT"
|
||||
exit
|
||||
fi
|
||||
docker rm IFLRANDEVU_BUILDER
|
||||
docker run -it -d --name IFLRANDEVU_BUILDER --mount type=bind,source=".",target=/link/ alpine:latest "/bin/sh"
|
||||
docker attach IFLRANDEVU_BUILDER --detach-keys="ctrl-k"
|
||||
|
||||
if [[ 1 -eq 1 ]]; then
|
||||
echo "RUN COMMANDS IN ALPINE DOCKER"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Inside Alpine Docker
|
||||
apk update && apk upgrade
|
||||
apk add git npm composer
|
||||
apk add php-gd php-dom php-xml php-xmlwriter phpunit
|
||||
|
||||
mkdir /docker_build/
|
||||
cd /docker_build/
|
||||
git clone https://git.aliberksandikci.com.tr/ifl/iflrandevu
|
||||
cd iflrandevu
|
||||
|
||||
composer update
|
||||
composer upgrade
|
||||
npm audit fix # maybe no need ?
|
||||
npm install && composer install
|
||||
npm run build
|
||||
|
||||
apk add zip
|
||||
echo "DELETING OLD BUILD FILE!!! (after waiting 30 sec)"
|
||||
sleep 30
|
||||
mkdir -p /link/output/
|
||||
rm /link/output/IFLRANDEVU_BUILD_OUTPUT_LATEST.zip
|
||||
cd /docker_build/iflrandevu/build/
|
||||
zip -r /link/output/IFLRANDEVU_BUILD_OUTPUT_LATEST.zip ./*
|
||||
sleep 5
|
||||
echo "BYE!"
|
||||
exit
|
||||
|
||||
# TODO run itself
|
||||
# TODO dockerfile
|
27925
package-lock.json
generated
27925
package-lock.json
generated
File diff suppressed because it is too large
Load diff
31
package.json
31
package.json
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"name": "easyappointments",
|
||||
"description": "Open Source Web Scheduler",
|
||||
"homepage": "https://easyappointments.org",
|
||||
"author": "A.Tselegidis <alextselegidis@gmail.com>",
|
||||
"name": "iflrandevu",
|
||||
"description": "İzmir Fen Lisesi Randevu Portalı",
|
||||
"homepage": "https://randevu.iflpanel.com",
|
||||
"author": "asandikci <contact@aliberksandikci.com.tr>",
|
||||
"license": "GPL-3.0",
|
||||
"keywords": [
|
||||
"calendar",
|
||||
|
@ -11,14 +11,19 @@
|
|||
"events",
|
||||
"dates",
|
||||
"google",
|
||||
"services"
|
||||
"services",
|
||||
"randevu",
|
||||
"izmir",
|
||||
"fen",
|
||||
"lisesi",
|
||||
"tanitim"
|
||||
],
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/alextselegidis/easyappointments.git"
|
||||
"url": "git+https://git.aliberksandikci.com.tr/ifl/iflrandevu.git"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/alextselegidis/easyappointments/issues"
|
||||
"url": "https://git.aliberksandikci.com.tr/ifl/iflrandevu/issues"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
|
@ -39,19 +44,19 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"fs-extra": "^0.26.7",
|
||||
"gulp": "^4.0.2",
|
||||
"gulp": "^3.3.0",
|
||||
"gulp-changed": "^3.2.0",
|
||||
"gulp-clean-css": "^3.10.0",
|
||||
"gulp-debug": "^4.0.0",
|
||||
"gulp-debug": "^3.2.0",
|
||||
"gulp-load-plugins": "^1.6.0",
|
||||
"gulp-notify": "^3.2.0",
|
||||
"gulp-notify": "^4.0.0",
|
||||
"gulp-plumber": "^1.2.1",
|
||||
"gulp-rename": "^1.4.0",
|
||||
"gulp-uglify": "^3.0.2",
|
||||
"jsdoc": "^3.6.6",
|
||||
"jsdoc": "^4.0.2",
|
||||
"node-notifier": "^8.0.1",
|
||||
"plato": "^1.7.0",
|
||||
"zip-dir": "^1.0.2"
|
||||
"plato": "^1.5.0",
|
||||
"zip-dir": "^2.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "npx gulp",
|
||||
|
|
Loading…
Reference in a new issue