Compare commits

...

22 Commits

Author SHA1 Message Date
919cde3a76 update thumbor volume var name. (#1801) 2018-09-17 22:28:12 +08:00
784aab2043 Update NVM installer (#1794) 2018-09-17 22:11:30 +08:00
d5d9073863 Fix CHANGE_SOURCE argument always false for nginx's Dockerfile (#1786) 2018-09-17 22:07:07 +08:00
6a3b3fac2d Added support for Thumbor (#1373) 2018-09-16 20:21:13 +08:00
61576c0b1b Change to stable CLI interface (#1793)
workspace apt command
2018-09-16 18:00:46 +08:00
70c1be4168 Point ea Alias To Correct File (#1698) 2018-09-16 17:58:26 +08:00
e101e4d5b2 Add mail services(mailu) (#1775)
* add mail service
2018-09-16 17:44:18 +08:00
4658820437 Update baseurl to https (#1791)
Closes #1751
2018-09-15 21:40:13 +08:00
0bbfb2d228 Update caddy Dockerfile (#1788)
* Change base image
2018-09-15 21:22:44 +08:00
86a4108ef4 fix comment (#1790)
GMP
2018-09-15 21:20:22 +08:00
20c85904c5 Package has been deprecated (#1796)
workspace npm bower
2018-09-15 21:19:24 +08:00
aaef73c84d fix typo (#1797) 2018-09-15 21:16:37 +08:00
876935452e Add .gitignore to php-worker (#1780)
* Add .gitignore
* Change file to example.
2018-09-08 21:31:58 +08:00
00df369e96 Add IonCube Loader (zend_extension) (#1763) 2018-09-08 21:31:05 +08:00
902198ab05 fix application path (#1781)
* fix application path

In the "env.sample" , "APP_CODE_PATH_HOST"  was written. I fixed Documentation.
2018-09-08 19:42:58 +08:00
2e2cb6df22 Enable docker-compose exec workspace npm (and yarn, etc.) (#1743)
* fix node PATH to enable docker-compose exec workspace npm
* add PATH for yarn to enable docker-compose exec workspace yarn
2018-08-31 20:19:52 +08:00
39469e1404 added ssh2 to workspace and php-fpm (#1756) 2018-08-28 14:16:25 +08:00
947a791ad2 Auto reload caddy and add basicauth example (#1706)
* add live reload and basicauth
2018-08-26 16:02:55 +08:00
aa84dd8616 added ext-gmp to workspace container (#1762) 2018-08-21 19:01:12 +08:00
b788a8bbfd Add Web Based IDEs (#1705)
Add Web Based IDEs: Theia, WebIDE, Codaid, IceCoder.
2018-08-21 13:49:56 +08:00
89051de67d This developer needed to turn back the clock in the PHP-FPM container, you will not believe what he did next! (#1675)
* Added documentation for installing libfaketime in the php-fpm container
* Enabled installing and using libfaketime system-wide inside the php-fpm container
2018-08-21 13:41:34 +08:00
1b865dd153 fix php5.6 workspace aerospike travis-ci build failed. (#1738) 2018-07-31 22:38:02 +08:00
22 changed files with 861 additions and 27 deletions

View File

@ -1,4 +1,4 @@
baseurl = "http://laradock.io/"
baseurl = "https://laradock.io/"
languageCode = "en-us"
publishDir = "../docs"
title = "Laradock"

View File

@ -353,6 +353,28 @@ Note: If `.php-fpm/xdebug` doesn't execute and gives `Permission Denied` error t
<br>
<a name="Install-ionCube-Loader"></a>
## Install ionCube Loader
1 - First install `ionCube Loader` in the Workspace and the PHP-FPM Containers:
<br>
a) open the `.env` file
<br>
b) search for the `WORKSPACE_INSTALL_IONCUBE` argument under the Workspace Container
<br>
c) set it to `true`
<br>
d) search for the `PHP_FPM_INSTALL_IONCUBE` argument under the PHP-FPM Container
<br>
e) set it to `true`
2 - Re-build the containers `docker-compose build workspace php-fpm`
Always download the latest version of [Loaders for ionCube ](http://www.ioncube.com/loaders.php).
<br>
@ -543,6 +565,28 @@ docker-compose up -d php-worker
<br>
<a name="Use-Mailu"></a>
## Use Mailu
1 - You need register a domain.
2 - Required RECAPTCHA for signup email [HERE](https://www.google.com/recaptcha/admin)
2 - modify following environment variable in `.env` file
```
MAILU_RECAPTCHA_PUBLIC_KEY=<YOUR_RECAPTCHA_PUBLIC_KEY>
MAILU_RECAPTCHA_PRIVATE_KEY=<YOUR_RECAPTCHA_PRIVATE_KEY>
MAILU_DOMAIN=laradock.io
MAILU_HOSTNAMES=mail.laradock.io
```
2 - Open your browser and visit `http://YOUR_DOMAIN`.
<br>
<a name="Use-NetData"></a>
## Use NetData
@ -999,6 +1043,27 @@ docker-compose up -d minio
<br>
<a name="Use-Thumbor"></a>
## Use Thumbor
Thumbor is a smart imaging service. It enables on-demand crop, resizing and flipping of images. ([Thumbor](https://github.com/thumbor/thumbor))
1 - Configure Thumbor:
- Checkout all the options under the thumbor settings
2 - Run the Thumbor Container (`minio`) with the `docker-compose up` command. Example:
```bash
docker-compose up -d thumbor
```
3 - Navigate to an example image on `http://localhost:8000/unsafe/300x300/i.imgur.com/bvjzPct.jpg`
For more documentation on Thumbor visit the [Thumbor documenation](http://thumbor.readthedocs.io/en/latest/index.html) page
<br>
<a name="Use-AWS"></a>
## Use AWS
@ -1499,10 +1564,33 @@ e) set it to `true`
3 - Set it to `true`
<br>
4 - Re-build the containers `docker-compose build php-fpm`
<br>
<br>
<a name="Install-Faketime"></a>
## Install libfaketime in the php-fpm container
Libfaketime allows you to control the date and time that is returned from the operating system.
It can be used by specifying a special string in the `PHP_FPM_FAKETIME` variable in the `.env` file.
For example:
`PHP_FPM_FAKETIME=-1d`
will set the clock back 1 day. See (https://github.com/wolfcw/libfaketime) for more information.
1 - Open the `.env` file
<br>
2 - Search for the `PHP_FPM_INSTALL_FAKETIME` argument under the PHP-FPM container
<br>
3 - Set it to `true`
<br>
4 - Search for the `PHP_FPM_FAKETIME` argument under the PHP-FPM container
<br>
5 - Set it to the desired string
<br>
6 - Re-build the containers `docker-compose build php-fpm`<br>
<br>
<a name="phpstorm-debugging"></a>
@ -1798,7 +1886,7 @@ This error sometimes happens because your Laravel application isn't running on t
## I get stuck when building nginx on `fetch http://mirrors.aliyun.com/alpine/v3.5/main/x86_64/APKINDEX.tar.gz`
As stated on [#749](https://github.com/laradock/laradock/issues/749#issuecomment-293296687), removing the line `RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories` from `nginx/Dockerfile` solves the problem.
As stated on [#749](https://github.com/laradock/laradock/issues/749#issuecomment-419652646), Already fixedjust set `CHANGE_SOURCE` to false.
## Custom composer repo packagist url and npm registry url

View File

@ -81,10 +81,10 @@ We'll need to do step 1 of the [Usage](#Usage) section now to make this happen.
cp env-example .env
```
At the top, change the `APPLICATION` variable to your project path.
At the top, change the `APP_CODE_PATH_HOST` variable to your project path.
```
APPLICATION=../project-z/
APP_CODE_PATH_HOST=../project-z/
```
Make sure to replace `project-z` with your project folder name.

View File

@ -97,7 +97,7 @@ Beanstalkd - RabbitMQ - PHP Worker
- **Queueing Management:**
Beanstalkd Console - RabbitMQ Console
- **Random Tools:**
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Gitlab - Mailhog - MailDev - Minio - Varnish - Swoole - NetData - Portainer - Laravel Echo...
Mailu - HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - Gitlab - Mailhog - MailDev - Minio - Varnish - Swoole - NetData - Portainer - Laravel Echo...
Laradock introduces the **Workspace** Image, as a development environment.
It contains a rich set of helpful tools, all pre-configured to work and integrate with almost any combination of Containers and tools you may choose.

View File

@ -1,17 +1,27 @@
FROM zuohuadong/caddy:alpine
FROM golang:alpine
LABEL maintainer="Huadong Zuo <admin@zuohuadong.cn>"
RUN apk add --no-cache \
openssh \
git \
build-base && \
go get github.com/abiosoft/caddyplug/caddyplug \
&& caddyplug install-caddy \
apk del build-base
ARG plugins="cors"
## ARG plugins="cors cgi cloudflare azure linode"
RUN caddyplug install ${plugins}
EXPOSE 80 443 2015
RUN apk add --no-cache inotify-tools \
&& echo -e "#!/bin/sh\nwhile inotifywait -e modify /etc/caddy; do\n\tpkill caddy\ndone " >> /start.sh \
&& chmod +x /start.sh
EXPOSE 80 443
WORKDIR /var/www/public
CMD ["/usr/bin/caddy", "-conf", "/etc/Caddyfile","-agree"]
CMD ["sh","-c","/start.sh & /usr/bin/caddy -conf /etc/caddy/Caddyfile -agree"]

View File

@ -44,3 +44,8 @@ laradock2.demo:80 {
#proxy domain.com
#cors
}
laradock3.demo:80 {
import authlist.conf
root /var/www/public
}

View File

@ -0,0 +1 @@
basicauth / laradock laradock

View File

@ -52,6 +52,8 @@ services:
- INSTALL_XDEBUG=${WORKSPACE_INSTALL_XDEBUG}
- INSTALL_PHPDBG=${WORKSPACE_INSTALL_PHPDBG}
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
- INSTALL_SSH2=${WORKSPACE_INSTALL_SSH2}
- INSTALL_GMP=${WORKSPACE_INSTALL_GMP}
- INSTALL_SOAP=${WORKSPACE_INSTALL_SOAP}
- INSTALL_LDAP=${WORKSPACE_INSTALL_LDAP}
- INSTALL_IMAP=${WORKSPACE_INSTALL_IMAP}
@ -88,6 +90,7 @@ services:
- INSTALL_PG_CLIENT=${WORKSPACE_INSTALL_PG_CLIENT}
- INSTALL_SWOOLE=${WORKSPACE_INSTALL_SWOOLE}
- INSTALL_LIBPNG=${WORKSPACE_INSTALL_LIBPNG}
- INSTALL_IONCUBE=${WORKSPACE_INSTALL_IONCUBE}
- PUID=${WORKSPACE_PUID}
- PGID=${WORKSPACE_PGID}
- CHROME_DRIVER_VERSION=${WORKSPACE_CHROME_DRIVER_VERSION}
@ -119,6 +122,7 @@ services:
- INSTALL_XDEBUG=${PHP_FPM_INSTALL_XDEBUG}
- INSTALL_PHPDBG=${PHP_FPM_INSTALL_PHPDBG}
- INSTALL_BLACKFIRE=${INSTALL_BLACKFIRE}
- INSTALL_SSH2=${PHP_FPM_INSTALL_SSH2}
- INSTALL_SOAP=${PHP_FPM_INSTALL_SOAP}
- INSTALL_IMAP=${PHP_FPM_INSTALL_IMAP}
- INSTALL_MONGO=${PHP_FPM_INSTALL_MONGO}
@ -144,6 +148,8 @@ services:
- INSTALL_IMAGE_OPTIMIZERS=${PHP_FPM_INSTALL_IMAGE_OPTIMIZERS}
- INSTALL_IMAGEMAGICK=${PHP_FPM_INSTALL_IMAGEMAGICK}
- INSTALL_CALENDAR=${PHP_FPM_INSTALL_CALENDAR}
- INSTALL_FAKETIME=${PHP_FPM_INSTALL_FAKETIME}
- INSTALL_IONCUBE=${PHP_FPM_INSTALL_IONCUBE}
volumes:
- ./php-fpm/php${PHP_VERSION}.ini:/usr/local/etc/php/php.ini
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
@ -154,6 +160,7 @@ services:
environment:
- PHP_IDE_CONFIG=${PHP_IDE_CONFIG}
- DOCKER_HOST=tcp://docker-in-docker:2375
- FAKETIME=${PHP_FPM_FAKETIME}
depends_on:
- workspace
networks:
@ -186,6 +193,7 @@ services:
args:
- PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
- PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
- CHANGE_SOURCE=${CHANGE_SOURCE}
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ${NGINX_HOST_LOG_PATH}:/var/log/nginx
@ -468,7 +476,7 @@ services:
build: ./caddy
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ${CADDY_CUSTOM_CADDYFILE}:/etc/Caddyfile
- ${CADDY_CONFIG_PATH}:/etc/caddy
- ${CADDY_HOST_LOG_PATH}:/var/log/caddy
- ${DATA_PATH_HOST}:/root/.caddy
ports:
@ -700,6 +708,122 @@ services:
networks:
- backend
### Thumbor #########################################
thumbor:
build: ./thumbor
volumes:
- ${DATA_PATH_HOST}/thumbor/data:/data
- ${DATA_PATH_HOST}/thumbor/data:/logs
ports:
- "${THUMBOR_PORT}:8000"
environment:
- THUMBOR_LOG_FORMAT=${THUMBOR_LOG_FORMAT}
- THUMBOR_LOG_DATE_FORMAT=${THUMBOR_LOG_DATE_FORMAT}
- MAX_WIDTH=${MAX_WIDTH}
- MAX_HEIGHT=${MAX_HEIGHT}
- MIN_WIDTH=${MIN_WIDTH}
- MIN_HEIGHT=${MIN_HEIGHT}
- ALLOWED_SOURCES=${ALLOWED_SOURCES}
- QUALITY=${QUALITY}
- WEBP_QUALITY=${WEBP_QUALITY}
- PNG_COMPRESSION_LEVEL=${PNG_COMPRESSION_LEVEL}
- AUTO_WEBP=${AUTO_WEBP}
- MAX_AGE=${MAX_AGE}
- MAX_AGE_TEMP_IMAGE=${MAX_AGE_TEMP_IMAGE}
- RESPECT_ORIENTATION=${RESPECT_ORIENTATION}
- IGNORE_SMART_ERRORS=${IGNORE_SMART_ERRORS}
- PRESERVE_EXIF_INFO=${PRESERVE_EXIF_INFO}
- ALLOW_ANIMATED_GIFS=${ALLOW_ANIMATED_GIFS}
- USE_GIFSICLE_ENGINE=${USE_GIFSICLE_ENGINE}
- USE_BLACKLIST=${USE_BLACKLIST}
- LOADER=${LOADER}
- STORAGE=${STORAGE}
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- RESULT_STORAGE=${RESULT_STORAGE}
- ENGINE=${ENGINE}
- SECURITY_KEY=${SECURITY_KEY}
- ALLOW_UNSAFE_URL=${ALLOW_UNSAFE_URL}
- ALLOW_OLD_URLS=${ALLOW_OLD_URLS}
- FILE_LOADER_ROOT_PATH=${FILE_LOADER_ROOT_PATH}
- HTTP_LOADER_CONNECT_TIMEOUT=${HTTP_LOADER_CONNECT_TIMEOUT}
- HTTP_LOADER_REQUEST_TIMEOUT=${HTTP_LOADER_REQUEST_TIMEOUT}
- HTTP_LOADER_FOLLOW_REDIRECTS=${HTTP_LOADER_FOLLOW_REDIRECTS}
- HTTP_LOADER_MAX_REDIRECTS=${HTTP_LOADER_MAX_REDIRECTS}
- HTTP_LOADER_FORWARD_USER_AGENT=${HTTP_LOADER_FORWARD_USER_AGENT}
- HTTP_LOADER_DEFAULT_USER_AGENT=${HTTP_LOADER_DEFAULT_USER_AGENT}
- HTTP_LOADER_PROXY_HOST=${HTTP_LOADER_PROXY_HOST}
- HTTP_LOADER_PROXY_PORT=${HTTP_LOADER_PROXY_PORT}
- HTTP_LOADER_PROXY_USERNAME=${HTTP_LOADER_PROXY_USERNAME}
- HTTP_LOADER_PROXY_PASSWORD=${HTTP_LOADER_PROXY_PASSWORD}
- HTTP_LOADER_CA_CERTS=${HTTP_LOADER_CA_CERTS}
- HTTP_LOADER_VALIDATE_CERTS=${HTTP_LOADER_VALIDATE_CERTS}
- HTTP_LOADER_CLIENT_KEY=${HTTP_LOADER_CLIENT_KEY}
- HTTP_LOADER_CLIENT_CERT=${HTTP_LOADER_CLIENT_CERT}
- HTTP_LOADER_CURL_ASYNC_HTTP_CLIENT=${HTTP_LOADER_CURL_ASYNC_HTTP_CLIENT}
- STORAGE_EXPIRATION_SECONDS=${STORAGE_EXPIRATION_SECONDS}
- STORES_CRYPTO_KEY_FOR_EACH_IMAGE=${STORES_CRYPTO_KEY_FOR_EACH_IMAGE}
- FILE_STORAGE_ROOT_PATH=${FILE_STORAGE_ROOT_PATH}
- UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE}
- UPLOAD_ENABLED=${UPLOAD_ENABLED}
- UPLOAD_PHOTO_STORAGE=${UPLOAD_PHOTO_STORAGE}
- UPLOAD_DELETE_ALLOWED=${UPLOAD_DELETE_ALLOWED}
- UPLOAD_PUT_ALLOWED=${UPLOAD_PUT_ALLOWED}
- UPLOAD_DEFAULT_FILENAME=${UPLOAD_DEFAULT_FILENAME}
- MONGO_STORAGE_SERVER_HOST=${MONGO_STORAGE_SERVER_HOST}
- MONGO_STORAGE_SERVER_PORT=${MONGO_STORAGE_SERVER_PORT}
- MONGO_STORAGE_SERVER_DB=${MONGO_STORAGE_SERVER_DB}
- MONGO_STORAGE_SERVER_COLLECTION=${MONGO_STORAGE_SERVER_COLLECTION}
- REDIS_STORAGE_SERVER_HOST=${REDIS_STORAGE_SERVER_HOST}
- REDIS_STORAGE_SERVER_PORT=${REDIS_STORAGE_SERVER_PORT}
- REDIS_STORAGE_SERVER_DB=${REDIS_STORAGE_SERVER_DB}
- REDIS_STORAGE_SERVER_PASSWORD=${REDIS_STORAGE_SERVER_PASSWORD}
- REDIS_RESULT_STORAGE_SERVER_HOST=${REDIS_RESULT_STORAGE_SERVER_HOST}
- REDIS_RESULT_STORAGE_SERVER_PORT=${REDIS_RESULT_STORAGE_SERVER_PORT}
- REDIS_RESULT_STORAGE_SERVER_DB=${REDIS_RESULT_STORAGE_SERVER_DB}
- REDIS_RESULT_STORAGE_SERVER_PASSWORD=${REDIS_RESULT_STORAGE_SERVER_PASSWORD}
- MEMCACHE_STORAGE_SERVERS=${MEMCACHE_STORAGE_SERVERS}
- MIXED_STORAGE_FILE_STORAGE=${MIXED_STORAGE_FILE_STORAGE}
- MIXED_STORAGE_CRYPTO_STORAGE=${MIXED_STORAGE_CRYPTO_STORAGE}
- MIXED_STORAGE_DETECTOR_STORAGE=${MIXED_STORAGE_DETECTOR_STORAGE}
- META_CALLBACK_NAME=${META_CALLBACK_NAME}
- DETECTORS=${DETECTORS}
- FACE_DETECTOR_CASCADE_FILE=${FACE_DETECTOR_CASCADE_FILE}
- OPTIMIZERS=${OPTIMIZERS}
- JPEGTRAN_PATH=${JPEGTRAN_PATH}
- PROGRESSIVE_JPEG=${PROGRESSIVE_JPEG}
- RESULT_STORAGE_EXPIRATION_SECONDS=${RESULT_STORAGE_EXPIRATION_SECONDS}
- RESULT_STORAGE_FILE_STORAGE_ROOT_PATH=${RESULT_STORAGE_FILE_STORAGE_ROOT_PATH}
- RESULT_STORAGE_STORES_UNSAFE=${RESULT_STORAGE_STORES_UNSAFE}
- REDIS_QUEUE_SERVER_HOST=${REDIS_QUEUE_SERVER_HOST}
- REDIS_QUEUE_SERVER_PORT=${REDIS_QUEUE_SERVER_PORT}
- REDIS_QUEUE_SERVER_DB=${REDIS_QUEUE_SERVER_DB}
- REDIS_QUEUE_SERVER_PASSWORD=${REDIS_QUEUE_SERVER_PASSWORD}
- SQS_QUEUE_KEY_ID=${SQS_QUEUE_KEY_ID}
- SQS_QUEUE_KEY_SECRET=${SQS_QUEUE_KEY_SECRET}
- SQS_QUEUE_REGION=${SQS_QUEUE_REGION}
- USE_CUSTOM_ERROR_HANDLING=${USE_CUSTOM_ERROR_HANDLING}
- ERROR_HANDLER_MODULE=${ERROR_HANDLER_MODULE}
- ERROR_FILE_LOGGER=${ERROR_FILE_LOGGER}
- ERROR_FILE_NAME_USE_CONTEXT=${ERROR_FILE_NAME_USE_CONTEXT}
- SENTRY_DSN_URL=${SENTRY_DSN_URL}
- TC_AWS_REGION=${TC_AWS_REGION}
- TC_AWS_ENDPOINT=${TC_AWS_ENDPOINT}
- TC_AWS_STORAGE_BUCKET=${TC_AWS_STORAGE_BUCKET}
- TC_AWS_STORAGE_ROOT_PATH=${TC_AWS_STORAGE_ROOT_PATH}
- TC_AWS_LOADER_BUCKET=${TC_AWS_LOADER_BUCKET}
- TC_AWS_LOADER_ROOT_PATH=${TC_AWS_LOADER_ROOT_PATH}
- TC_AWS_RESULT_STORAGE_BUCKET=${TC_AWS_RESULT_STORAGE_BUCKET}
- TC_AWS_RESULT_STORAGE_ROOT_PATH=${TC_AWS_RESULT_STORAGE_ROOT_PATH}
- TC_AWS_STORAGE_SSE=${TC_AWS_STORAGE_SSE}
- TC_AWS_STORAGE_RRS=${TC_AWS_STORAGE_RRS}
- TC_AWS_ENABLE_HTTP_LOADER=${TC_AWS_ENABLE_HTTP_LOADER}
- TC_AWS_ALLOWED_BUCKETS=${TC_AWS_ALLOWED_BUCKETS}
- TC_AWS_STORE_METADATA=${TC_AWS_STORE_METADATA}
networks:
- frontend
- backend
### AWS EB-CLI ################################################
aws:
build:
@ -889,3 +1013,223 @@ services:
networks:
- backend
### IDE-THEIA ################################################
ide-theia:
build:
context: ./ide-theia
volumes:
- ${APP_CODE_PATH_HOST}:/home/project
ports:
- "${IDE_THEIA_PORT}:3000"
networks:
- backend
### IDE-WEBIDE ################################################
ide-webide:
build:
context: ./ide-webide
volumes:
- ${DATA_PATH_HOST}/ide/webide/ide.db:/root/.coding-ide/ide.db
ports:
- "${IDE_WEBIDE_PORT}:8080"
networks:
- backend
### IDE-CODIAD ################################################
ide-codiad:
build:
context: ./ide-codiad
environment:
- APP_CODE_PATH_CONTAINER=${APP_CODE_PATH_CONTAINER}
- TZ=${WORKSPACE_TIMEZONE}
- PGID=1000
- PUID=1000
volumes:
- /etc/localtime:/etc/localtime:ro
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
- ${DATA_PATH_HOST}/ide/codiad:/config
ports:
- "${IDE_CODIAD_PORT}:80"
networks:
- backend
### IDE-ICECODER ################################################
ide-icecoder:
build:
context: ./ide-icecoder
environment:
- DOCUMENT_ROOT=${APP_CODE_PATH_CONTAINER}
- TZ=${WORKSPACE_TIMEZONE}
- PGID=1000
- PUID=1000
volumes:
- /etc/localtime:/etc/localtime:ro
- ${APP_CODE_PATH_HOST}:/home/laradock/ICEcoder/dev
ports:
- "${IDE_ICECODER_PORT}:8080"
networks:
- backend
### MAILU ################################################
mailu:
image: mailu/admin:${MAILU_VERSION}
volumes:
- "${DATA_PATH_HOST}/mailu/data:/data"
- "${DATA_PATH_HOST}/mailu/dkim:/dkim"
- "${DATA_PATH_HOST}/mailu/webmail:/webmail"
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
- mailu-front
- mailu-imap
- mailu-smtp
- mailu-antispam
- mailu-antivirus
- mailu-webdav
- mailu-admin
- mailu-webmail
- mailu-fetchmail
command: ["sh", "-c", "echo ${MAILU_INIT_ADMIN_USERNAME}@${MAILU_DOMAIN} ${MAILU_INIT_ADMIN_PASSWORD} ;python manage.py advertise ; python manage.py db upgrade ; python manage.py admin ${MAILU_INIT_ADMIN_USERNAME} ${MAILU_DOMAIN} ${MAILU_INIT_ADMIN_PASSWORD} || true;sed -i -- \"s/= Off/= On/g\" /webmail/_data_/_default_/configs/config.ini || true;if grep -Fq \"registration_link_url\" /webmail/_data_/_default_/configs/config.ini;then echo Already set!;else echo \"\" >> /webmail/_data_/_default_/configs/config.ini; echo \"[login]\" >> /webmail/_data_/_default_/configs/config.ini;echo \"registration_link_url = '${MAILU_WEBSITE}${MAILU_WEB_ADMIN}/ui/user/signup'\" >> /webmail/_data_/_default_/configs/config.ini;fi"]
networks:
- backend
mailu-front:
image: mailu/nginx:${MAILU_VERSION}
environment:
- ADMIN=${MAILU_ADMIN}
- WEB_ADMIN=${MAILU_WEB_ADMIN}
- WEB_WEBMAIL=${MAILU_WEB_WEBMAIL}
- WEBDAV=${MAILU_WEBDAV}
- HOSTNAMES=${MAILU_HOSTNAMES}
- TLS_FLAVOR=${MAILU_TLS_FLAVOR}
- MESSAGE_SIZE_LIMIT=${MAILU_MESSAGE_SIZE_LIMIT}
ports:
- "${MAILU_HTTP_PORT}:80"
- "${MAILU_HTTPS_PORT}:443"
- "110:110"
- "143:143"
- "993:993"
- "995:995"
- "25:25"
- "465:465"
- "587:587"
volumes:
- "${DATA_PATH_HOST}/mailu/certs:/certs"
networks:
backend:
aliases:
- front
mailu-imap:
image: mailu/dovecot:${MAILU_VERSION}
environment:
- DOMAIN=${MAILU_DOMAIN}
- HOSTNAMES=${MAILU_HOSTNAMES}
- POSTMASTER=${MAILU_POSTMASTER}
- WEBMAIL=${MAILU_WEBMAIL}
- RECIPIENT_DELIMITER=${MAILU_RECIPIENT_DELIMITER}
volumes:
- "${DATA_PATH_HOST}/mailu/data:/data"
- "${DATA_PATH_HOST}/mailu/mail:/mail"
- "${DATA_PATH_HOST}/mailu/overrides:/overrides"
depends_on:
- mailu-front
networks:
backend:
aliases:
- imap
mailu-smtp:
image: mailu/postfix:${MAILU_VERSION}
environment:
- DOMAIN=${MAILU_DOMAIN}
- HOSTNAMES=${MAILU_HOSTNAMES}
- RELAYHOST=${MAILU_RELAYHOST}
- RELAYNETS=${MAILU_RELAYNETS}
- RECIPIENT_DELIMITER=${MAILU_RECIPIENT_DELIMITER}
- MESSAGE_SIZE_LIMIT=${MAILU_MESSAGE_SIZE_LIMIT}
volumes:
- "${DATA_PATH_HOST}/mailu/data:/data"
- "${DATA_PATH_HOST}/mailu/overrides:/overrides"
depends_on:
- mailu-front
networks:
backend:
aliases:
- smtp
mailu-antispam:
image: mailu/rspamd:${MAILU_VERSION}
volumes:
- "${DATA_PATH_HOST}/mailu/filter:/var/lib/rspamd"
- "${DATA_PATH_HOST}/mailu/dkim:/dkim"
- "${DATA_PATH_HOST}/mailu/overrides/rspamd:/etc/rspamd/override.d"
depends_on:
- mailu-front
networks:
backend:
aliases:
- antispam
mailu-antivirus:
image: mailu/clamav:${MAILU_VERSION}
volumes:
- "${DATA_PATH_HOST}/mailu/filter:/data"
networks:
backend:
aliases:
- antivirus
mailu-webdav:
image: mailu/${MAILU_WEBDAV}:${MAILU_VERSION}
volumes:
- "${DATA_PATH_HOST}/mailu/dav:/data"
networks:
backend:
aliases:
- webdav
mailu-admin:
image: mailu/admin:${MAILU_VERSION}
environment:
- DOMAIN=${MAILU_DOMAIN}
- HOSTNAMES=${MAILU_HOSTNAMES}
- POSTMASTER=${MAILU_POSTMASTER}
- SECRET_KEY=${MAILU_SECRET_KEY}
- AUTH_RATELIMIT=${MAILU_AUTH_RATELIMIT}
- TLS_FLAVOR=${MAILU_TLS_FLAVOR}
- DISABLE_STATISTICS=${MAILU_DISABLE_STATISTICS}
- DMARC_RUA=${MAILU_DMARC_RUA}
- DMARC_RUF=${MAILU_DMARC_RUF}
- WELCOME=${MAILU_WELCOME}
- WELCOME_SUBJECT=${MAILU_WELCOME_SUBJECT}
- WELCOME_BODY=${MAILU_WELCOME_BODY}
- WEB_ADMIN=${MAILU_WEB_ADMIN}
- WEB_WEBMAIL=${MAILU_WEB_WEBMAIL}
- WEBSITE=${MAILU_WEBSITE}
- WEBMAIL=${MAILU_WEBMAIL}
- SITENAME=${MAILU_SITENAME}
- PASSWORD_SCHEME=${MAILU_PASSWORD_SCHEME}
- RECAPTCHA_PUBLIC_KEY=${MAILU_RECAPTCHA_PUBLIC_KEY}
- RECAPTCHA_PRIVATE_KEY=${MAILU_RECAPTCHA_PRIVATE_KEY}
volumes:
- "${DATA_PATH_HOST}/mailu/data:/data"
- "${DATA_PATH_HOST}/mailu/dkim:/dkim"
- /var/run/docker.sock:/var/run/docker.sock:ro
depends_on:
- redis
networks:
backend:
aliases:
- admin
mailu-webmail:
image: "mailu/${MAILU_WEBMAIL}:${MAILU_VERSION}"
volumes:
- "${DATA_PATH_HOST}/mailu/webmail:/data"
networks:
backend:
aliases:
- webmail
mailu-fetchmail:
image: mailu/fetchmail:${MAILU_VERSION}
environment:
- FETCHMAIL_DELAY=${MAILU_FETCHMAIL_DELAY}
volumes:
- "${DATA_PATH_HOST}/mailu/data:/data"
networks:
backend:
aliases:
- fetchmail

View File

@ -81,14 +81,16 @@ WORKSPACE_NPM_REGISTRY=
WORKSPACE_INSTALL_YARN=true
WORKSPACE_YARN_VERSION=latest
WORKSPACE_INSTALL_NPM_GULP=true
WORKSPACE_INSTALL_NPM_BOWER=true
WORKSPACE_INSTALL_NPM_BOWER=false
WORKSPACE_INSTALL_NPM_VUE_CLI=true
WORKSPACE_INSTALL_PHPREDIS=true
WORKSPACE_INSTALL_WORKSPACE_SSH=false
WORKSPACE_INSTALL_SUBVERSION=false
WORKSPACE_INSTALL_XDEBUG=false
WORKSPACE_INSTALL_PHPDBG=false
WORKSPACE_INSTALL_SSH2=false
WORKSPACE_INSTALL_LDAP=false
WORKSPACE_INSTALL_GMP=false
WORKSPACE_INSTALL_SOAP=false
WORKSPACE_INSTALL_IMAP=false
WORKSPACE_INSTALL_MONGO=false
@ -114,6 +116,7 @@ WORKSPACE_INSTALL_DUSK_DEPS=false
WORKSPACE_INSTALL_PG_CLIENT=false
WORKSPACE_INSTALL_SWOOLE=false
WORKSPACE_INSTALL_LIBPNG=false
WORKSPACE_INSTALL_IONCUBE=false
WORKSPACE_PUID=1000
WORKSPACE_PGID=1000
WORKSPACE_CHROME_DRIVER_VERSION=2.32
@ -138,6 +141,7 @@ PHP_FPM_INSTALL_IMAP=false
PHP_FPM_INSTALL_MONGO=false
PHP_FPM_INSTALL_AMQP=false
PHP_FPM_INSTALL_MSSQL=false
PHP_FPM_INSTALL_SSH2=false
PHP_FPM_INSTALL_SOAP=false
PHP_FPM_INSTALL_GMP=false
PHP_FPM_INSTALL_EXIF=false
@ -149,6 +153,9 @@ PHP_FPM_INSTALL_SWOOLE=false
PHP_FPM_INSTALL_PG_CLIENT=false
PHP_FPM_INSTALL_PCNTL=false
PHP_FPM_INSTALL_CALENDAR=false
PHP_FPM_INSTALL_FAKETIME=false
PHP_FPM_INSTALL_IONCUBE=false
PHP_FPM_FAKETIME=-0
### PHP_WORKER ############################################
@ -336,6 +343,8 @@ AEROSPIKE_INFO_PORT=3003
# for all versions "https://github.com/aerospike/aerospike-client-php/archive/master.tar.gz"
# for php 7.2 (using this branch until the support for 7.2 on master) "https://github.com/aerospike/aerospike-client-php/archive/7.2.0-release-candidate.tar.gz"
AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php/archive/7.2.0-release-candidate.tar.gz
# for php 5.6
# AEROSPIKE_PHP_REPOSITORY=https://github.com/aerospike/aerospike-client-php5/archive/3.4.15.tar.gz
### RETHINKDB #############################################
@ -350,12 +359,128 @@ MONGODB_PORT=27017
CADDY_HOST_HTTP_PORT=80
CADDY_HOST_HTTPS_PORT=443
CADDY_HOST_LOG_PATH=./logs/caddy
CADDY_CUSTOM_CADDYFILE=./caddy/Caddyfile
CADDY_CONFIG_PATH=./caddy/caddy
### LARAVEL ECHO SERVER ###################################
LARAVEL_ECHO_SERVER_PORT=6001
### DOCKER-SYNC ########################################################################################################
# osx: 'native_osx' (default)
# windows: 'unison'
# linux: docker-sync not required
DOCKER_SYNC_STRATEGY=native_osx
### THUMBOR ############################################################################################################
THUMBOR_PORT=8000
THUMBOR_LOG_FORMAT="%(asctime)s %(name)s:%(levelname)s %(message)s"
THUMBOR_LOG_DATE_FORMAT="%Y-%m-%d %H:%M:%S"
MAX_WIDTH=0
MAX_HEIGHT=0
MIN_WIDTH=1
MIN_HEIGHT=1
ALLOWED_SOURCES=[]
QUALITY=80
WEBP_QUALITY=None
PNG_COMPRESSION_LEVEL=6
AUTO_WEBP=False
MAX_AGE=86400
MAX_AGE_TEMP_IMAGE=0
RESPECT_ORIENTATION=False
IGNORE_SMART_ERRORS=False
PRESERVE_EXIF_INFO=False
ALLOW_ANIMATED_GIFS=True
USE_GIFSICLE_ENGINE=False
USE_BLACKLIST=False
LOADER=thumbor.loaders.http_loader
STORAGE=thumbor.storages.file_storage
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
RESULT_STORAGE=thumbor.result_storages.file_storage
ENGINE=thumbor.engines.pil
SECURITY_KEY="MY_SECURE_KEY"
ALLOW_UNSAFE_URL=True
ALLOW_OLD_URLS=True
FILE_LOADER_ROOT_PATH=/data/loader
HTTP_LOADER_CONNECT_TIMEOUT=5
HTTP_LOADER_REQUEST_TIMEOUT=20
HTTP_LOADER_FOLLOW_REDIRECTS=True
HTTP_LOADER_MAX_REDIRECTS=5
HTTP_LOADER_FORWARD_USER_AGENT=False
HTTP_LOADER_DEFAULT_USER_AGENT="Thumbor/5.2.1"
HTTP_LOADER_PROXY_HOST=None
HTTP_LOADER_PROXY_PORT=None
HTTP_LOADER_PROXY_USERNAME=None
HTTP_LOADER_PROXY_PASSWORD=None
HTTP_LOADER_CA_CERTS=None
HTTP_LOADER_VALIDATE_CERTS=True
HTTP_LOADER_CLIENT_KEY=None
HTTP_LOADER_CLIENT_CERT=None
HTTP_LOADER_CURL_ASYNC_HTTP_CLIENT=False
STORAGE_EXPIRATION_SECONDS=2592000
STORES_CRYPTO_KEY_FOR_EACH_IMAGE=False
FILE_STORAGE_ROOT_PATH=/data/storage
UPLOAD_MAX_SIZE=0
UPLOAD_ENABLED=False
UPLOAD_PHOTO_STORAGE=thumbor.storages.file_storage
UPLOAD_DELETE_ALLOWED=False
UPLOAD_PUT_ALLOWED=False
UPLOAD_DEFAULT_FILENAME=image
MONGO_STORAGE_SERVER_HOST=mongo
MONGO_STORAGE_SERVER_PORT=27017
MONGO_STORAGE_SERVER_DB=thumbor
MONGO_STORAGE_SERVER_COLLECTION=images
REDIS_STORAGE_SERVER_HOST=redis
REDIS_STORAGE_SERVER_PORT=6379
REDIS_STORAGE_SERVER_DB=0
REDIS_STORAGE_SERVER_PASSWORD=None
REDIS_RESULT_STORAGE_SERVER_HOST=redis
REDIS_RESULT_STORAGE_SERVER_PORT=6379
REDIS_RESULT_STORAGE_SERVER_DB=0
REDIS_RESULT_STORAGE_SERVER_PASSWORD=None
MEMCACHE_STORAGE_SERVERS=["localhost:11211",]
MIXED_STORAGE_FILE_STORAGE=thumbor.storages.no_storage
MIXED_STORAGE_CRYPTO_STORAGE=thumbor.storages.no_storage
MIXED_STORAGE_DETECTOR_STORAGE=thumbor.storages.no_storage
META_CALLBACK_NAME=None
DETECTORS=[]
FACE_DETECTOR_CASCADE_FILE=haarcascade_frontalface_alt.xml
OPTIMIZERS=[]
JPEGTRAN_PATH=/usr/bin/jpegtran
PROGRESSIVE_JPEG=True
FILTERS=["thumbor.filters.brightness", "thumbor.filters.contrast", "thumbor.filters.rgb", "thumbor.filters.round_corner", "thumbor.filters.quality", "thumbor.filters.noise", "thumbor.filters.watermark", "thumbor.filters.equalize", "thumbor.filters.fill", "thumbor.filters.sharpen", "thumbor.filters.strip_icc", "thumbor.filters.frame", "thumbor.filters.grayscale", "thumbor.filters.rotate", "thumbor.filters.format", "thumbor.filters.max_bytes", "thumbor.filters.convolution", "thumbor.filters.blur", "thumbor.filters.extract_focal", "thumbor.filters.no_upscale"]
RESULT_STORAGE_EXPIRATION_SECONDS=0
RESULT_STORAGE_FILE_STORAGE_ROOT_PATH=/data/result_storage
RESULT_STORAGE_STORES_UNSAFE=False
REDIS_QUEUE_SERVER_HOST=redis
REDIS_QUEUE_SERVER_PORT=6379
REDIS_QUEUE_SERVER_DB="0"
REDIS_QUEUE_SERVER_PASSWORD=None
SQS_QUEUE_KEY_ID=None
SQS_QUEUE_KEY_SECRET=None
SQS_QUEUE_REGION=us-east-1
USE_CUSTOM_ERROR_HANDLING=False
ERROR_HANDLER_MODULE=thumbor.error_handlers.sentry
ERROR_FILE_LOGGER=None
ERROR_FILE_NAME_USE_CONTEXT="False"
SENTRY_DSN_URL=
TC_AWS_REGION=eu-west-1
TC_AWS_ENDPOINT=None
TC_AWS_STORAGE_BUCKET=
TC_AWS_STORAGE_ROOT_PATH=
TC_AWS_LOADER_BUCKET=
TC_AWS_LOADER_ROOT_PATH=
TC_AWS_RESULT_STORAGE_BUCKET=
TC_AWS_RESULT_STORAGE_ROOT_PATH=
TC_AWS_STORAGE_SSE=False
TC_AWS_STORAGE_RRS=False
TC_AWS_ENABLE_HTTP_LOADER=False
TC_AWS_ALLOWED_BUCKETS=False
TC_AWS_STORE_METADATA=False
### SOLR ##################################################
SOLR_VERSION=5.5
@ -406,4 +531,71 @@ MONGO_WEBUI_INSTALL_MONGO=false
### METABASE ###############################################
METABASE_PORT=3030
METABASE_DB_FILE=metabase.db
METABASE_JAVA_TIMEZONE=US/Pacific
METABASE_JAVA_TIMEZONE=US/Pacific
### IDE ###############################################
IDE_THEIA_PORT=987
IDE_WEBIDE_PORT=984
IDE_CODIAD_PORT=985
IDE_ICECODER_PORT=986
### MAILU ###############################################
MAILU_VERSION=latest
MAILU_RECAPTCHA_PUBLIC_KEY=<YOUR_RECAPTCHA_PUBLIC_KEY>
MAILU_RECAPTCHA_PRIVATE_KEY=<YOUR_RECAPTCHA_PRIVATE_KEY>
# Main mail domain
MAILU_HTTP_PORT=6080
MAILU_HTTPS_PORT=60443
MAILU_DOMAIN=example.com
MAILU_INIT_ADMIN_USERNAME=laradock
MAILU_INIT_ADMIN_PASSWORD=laradock
# Hostnames for this server, separated with comas
MAILU_HOSTNAMES=mail.example.com,alternative.example.com,yetanother.example.com
# Postmaster local part (will append the main mail domain)
MAILU_POSTMASTER=admin
# Set to a randomly generated 16 bytes string
MAILU_SECRET_KEY=ChangeMeChangeMe
# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail)
MAILU_TLS_FLAVOR=cert
# Authentication rate limit (per source IP address)
MAILU_AUTH_RATELIMIT=10/minute;1000/hour
# Opt-out of statistics, replace with "True" to opt out
MAILU_DISABLE_STATISTICS=False
# Message size limit in bytes
# Default: accept messages up to 50MB
MAILU_MESSAGE_SIZE_LIMIT=50000000
# Will relay all outgoing mails if configured
MAILU_RELAYHOST=
# Networks granted relay permissions, make sure that you include your Docker
# internal network (default to 172.17.0.0/16)
MAILU_RELAYNETS=172.16.0.0/12
# Fetchmail delay
MAILU_FETCHMAIL_DELAY=600
# Recipient delimiter, character used to delimiter localpart from custom address part
# e.g. localpart+custom@domain;tld
MAILU_RECIPIENT_DELIMITER=+
# DMARC rua and ruf email
MAILU_DMARC_RUA=admin
MAILU_DMARC_RUF=admin
# Weclome email, enable and set a topic and body if you wish to send welcome
# emails to all users.
MAILU_WELCOME=True
MAILU_WELCOME_SUBJECT=Welcome to your new email account
MAILU_WELCOME_BODY=Welcome to your new email account, if you can read this, then it is configured properly!
# Path to the admin interface if enabled
MAILU_WEB_ADMIN=/admin
# Path to the webmail if enabled
MAILU_WEB_WEBMAIL=/webmail
# Website name
MAILU_SITENAME=Example Mail
# Linked Website URL
MAILU_WEBSITE=http://mail.example.com
# Default password scheme used for newly created accounts and changed passwords
# (value: SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
MAILU_PASSWORD_SCHEME=SHA512-CRYPT
# Expose the admin interface (value: true, false)
MAILU_ADMIN=true
# Choose which webmail to run if any (values: roundcube, rainloop, none)
MAILU_WEBMAIL=rainloop
# Dav server implementation (value: radicale, none)
MAILU_WEBDAV=radicale

5
ide-codiad/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM linuxserver/codiad
LABEL maintainer="ahkui <ahkui@outlook.com>"
COPY config.php /defaults/config.php

43
ide-codiad/config.php Normal file
View File

@ -0,0 +1,43 @@
<?php
/*
* Copyright (c) Codiad & Kent Safranski (codiad.com), distributed
* as-is and without warranty under the MIT License. See
* [root]/license.txt for more. This information must remain intact.
*/
//////////////////////////////////////////////////////////////////
// CONFIG
//////////////////////////////////////////////////////////////////
// PATH TO CODIAD
define("BASE_PATH", "/config/www/");
// BASE URL TO CODIAD (without trailing slash)
define("BASE_URL", "localhost");
// THEME : default, modern or clear (look at /themes)
define("THEME", "default");
// ABSOLUTE PATH, this is used as whitelist for absolute path projects
define("WHITEPATHS", BASE_PATH . ",/home,/");
// SESSIONS (e.g. 7200)
$cookie_lifetime = "0";
// TIMEZONE
date_default_timezone_set(getenv('TZ','UTC'));
// Allows to overwrite the default language
//define("LANGUAGE", "en");
// External Authentification
//define("AUTH_PATH", "/path/to/customauth.php");
//////////////////////////////////////////////////////////////////
// ** DO NOT EDIT CONFIG BELOW **
//////////////////////////////////////////////////////////////////
// PATHS
define("COMPONENTS", BASE_PATH . "/components");
define("PLUGINS", BASE_PATH . "/plugins");
define("THEMES", BASE_PATH . "/themes");
define("DATA", BASE_PATH . "/data");
define("WORKSPACE", getenv('APP_CODE_PATH_CONTAINER',BASE_PATH . "workspace"));
// URLS
define("WSURL", getenv('APP_CODE_PATH_CONTAINER',BASE_PATH . "workspace"));
// Marketplace
define("MARKETURL", "http://market.codiad.com/json");
// Update Check
//define("UPDATEURL", "http://update.codiad.com/?v={VER}&o={OS}&p={PHP}&w={WEB}&a={ACT}");
define("ARCHIVEURL", "https://github.com/Codiad/Codiad/archive/master.zip");
define("COMMITURL", "https://api.github.com/repos/Codiad/Codiad/commits");
?>

21
ide-icecoder/Dockerfile Normal file
View File

@ -0,0 +1,21 @@
FROM php:alpine
LABEL maintainer="ahkui <ahkui@outlook.com>"
ARG PUID=1000
ENV PUID ${PUID}
ARG PGID=1000
ENV PGID ${PGID}
RUN apk add --no-cache git
RUN addgroup -g $PGID -S laradock && \
adduser -u $PUID -S laradock -G laradock
USER laradock
RUN cd /home/laradock && git clone https://github.com/mattpass/ICEcoder.git
WORKDIR /home/laradock/ICEcoder
CMD ["php","-S","0.0.0.0:8080"]

5
ide-theia/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM theiaide/theia
LABEL maintainer="ahkui <ahkui@outlook.com>"
RUN echo 'fs.inotify.max_user_watches=524288' >> /etc/sysctl.conf

3
ide-webide/Dockerfile Normal file
View File

@ -0,0 +1,3 @@
FROM webide/webide
LABEL maintainer="ahkui <ahkui@outlook.com>"

View File

@ -2,7 +2,7 @@
# Copy createdb.sql.example to createdb.sql
# then uncomment then set database name and username to create you need databases
#
# example: .env MYSQL_USER=appuser and need db name is myshop_db
# example: .env MYSQL_USER=appuser and needed db name is myshop_db
#
# CREATE DATABASE IF NOT EXISTS `myshop_db` ;
# GRANT ALL ON `myshop_db`.* TO 'appuser'@'%' ;

View File

@ -50,6 +50,23 @@ RUN apt-get update -yqq && \
# - INSTALL_ZIP_ARCHIVE=true
#
###########################################################################
# SSH2:
###########################################################################
ARG INSTALL_SSH2=false
RUN if [ ${INSTALL_SSH2} = true ]; then \
# Install the ssh2 extension
apt-get -y install libssh2-1-dev && \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
pecl install -a ssh2-0.13; \
else \
pecl install -a ssh2-1.1.2; \
fi && \
docker-php-ext-enable ssh2 \
;fi
###########################################################################
# SOAP:
###########################################################################
@ -325,6 +342,21 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
&& docker-php-ext-enable aerospike \
;fi
###########################################################################
# IonCube Loader:
###########################################################################
ARG INSTALL_IONCUBE=false
RUN if [ ${INSTALL_IONCUBE} = true ]; then \
# Install the php ioncube loader
curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
&& tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \
&& mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \
&& printf "zend_extension=ioncube_loader.so\n" > $PHP_INI_DIR/conf.d/0ioncube.ini \
&& rm -rf /tmp/ioncube* \
;fi
###########################################################################
# Opcache:
###########################################################################
@ -485,6 +517,18 @@ RUN if [ ${INSTALL_CALENDAR} = true ]; then \
docker-php-ext-install calendar \
;fi
###########################################################################
# libfaketime:
###########################################################################
USER root
ARG INSTALL_FAKETIME=false
RUN if [ ${INSTALL_FAKETIME} = true ]; then \
apt-get install -y libfaketime \
;fi
###########################################################################
# Check PHP version:
###########################################################################
@ -509,6 +553,12 @@ RUN apt-get clean && \
RUN usermod -u 1000 www-data
# Adding the faketime library to the preload file needs to be done last
# otherwise it will preload it for all commands that follow in this file
RUN if [ ${INSTALL_FAKETIME} = true ]; then \
echo "/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1" > /etc/ld.so.preload \
;fi
WORKDIR /var/www
CMD ["php-fpm"]

1
php-worker/supervisord.d/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.conf

View File

@ -4,4 +4,4 @@ command=php /var/www/artisan queue:work --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
numprocs=8
redirect_stderr=true
redirect_stderr=true

5
thumbor/Dockerfile Normal file
View File

@ -0,0 +1,5 @@
FROM apsl/thumbor
CMD ["thumbor"]
EXPOSE 8000

View File

@ -15,6 +15,10 @@ if [ -n "${PHP_VERSION}" ]; then
sed -i -- "s/PHP_VERSION=.*/PHP_VERSION=${PHP_VERSION}/g" .env
sed -i -- 's/=false/=true/g' .env
sed -i -- 's/PHPDBG=true/PHPDBG=false/g' .env
if [ "${PHP_VERSION}" == "5.6" ]; then
sed -i -- 's/^AEROSPIKE_PHP_REPOSITORY=/##AEROSPIKE_PHP_REPOSITORY=/g' .env
sed -i -- 's/^# AEROSPIKE_PHP_REPOSITORY=/AEROSPIKE_PHP_REPOSITORY=/g' .env
fi
cat .env
docker-compose build ${BUILD_SERVICE}
docker images

View File

@ -174,6 +174,33 @@ RUN if [ ${INSTALL_DRUSH} = true ]; then \
drush core-status \
;fi
###########################################################################
# SSH2:
###########################################################################
USER root
ARG INSTALL_SSH2=false
RUN if [ ${INSTALL_SSH2} = true ]; then \
# Install the PHP SSH2 extension
apt-get -y install libssh2-1-dev php${LARADOCK_PHP_VERSION}-ssh2 \
;fi
###########################################################################
# GMP:
###########################################################################
USER root
ARG INSTALL_GMP=false
ARG PHP_VERSION=${PHP_VERSION}
RUN if [ ${INSTALL_GMP} = true ]; then \
# Install the PHP GMP extension
apt-get -y install php${PHP_VERSION}-gmp \
;fi
###########################################################################
# SOAP:
###########################################################################
@ -366,8 +393,23 @@ RUN if [ ${INSTALL_SWOOLE} = true ]; then \
ARG INSTALL_LIBPNG=false
RUN if [ ${INSTALL_LIBPNG} = true ]; then \
apt update && \
apt install libpng16-16 \
apt-get update && \
apt-get install libpng16-16 \
;fi
###########################################################################
# IonCube Loader
###########################################################################
ARG INSTALL_IONCUBE=false
RUN if [ ${INSTALL_IONCUBE} = true ]; then \
# Install the php ioncube loader
curl -L -o /tmp/ioncube_loaders_lin_x86-64.tar.gz https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz \
&& tar zxpf /tmp/ioncube_loaders_lin_x86-64.tar.gz -C /tmp \
&& mv /tmp/ioncube/ioncube_loader_lin_${LARADOCK_PHP_VERSION}.so $(php -r "echo ini_get('extension_dir');")/ioncube_loader.so \
&& echo "zend_extension=ioncube_loader.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/0ioncube.ini \
&& rm -rf /tmp/ioncube* \
;fi
###########################################################################
@ -404,7 +446,8 @@ ENV NVM_DIR /home/laradock/.nvm
RUN if [ ${INSTALL_NODE} = true ]; then \
# Install nvm (A Node Version Manager)
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash \
mkdir -p $NVM_DIR && \
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash \
&& . $NVM_DIR/nvm.sh \
&& nvm install ${NODE_VERSION} \
&& nvm use ${NODE_VERSION} \
@ -421,6 +464,7 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
&& if [ ${INSTALL_NPM_VUE_CLI} = true ]; then \
npm install -g @vue/cli \
;fi \
&& ln -s `npm bin --global` /home/laradock/.node-bin \
;fi
# Wouldn't execute when added to the RUN statement in the above block
@ -441,7 +485,7 @@ RUN if [ ${INSTALL_NODE} = true ]; then \
;fi
# Add PATH for node
ENV PATH $PATH:$NVM_DIR/versions/node/v${NODE_VERSION}/bin
ENV PATH $PATH:/home/laradock/.node-bin
RUN if [ ${NPM_REGISTRY} ]; then \
. ~/.bashrc && npm config set registry ${NPM_REGISTRY} \
@ -477,6 +521,9 @@ RUN if [ ${INSTALL_YARN} = true ]; then \
echo 'export PATH="$YARN_DIR/bin:$PATH"' >> ~/.bashrc \
;fi
# Add PATH for YARN
ENV PATH $PATH:/home/laradock/.yarn/bin
###########################################################################
# PHP Aerospike:
###########################################################################
@ -493,12 +540,22 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
curl -L -o /tmp/aerospike-client-php.tar.gz ${AEROSPIKE_PHP_REPOSITORY} \
&& mkdir -p aerospike-client-php \
&& tar -C aerospike-client-php -zxvf /tmp/aerospike-client-php.tar.gz --strip 1 \
&& ( \
cd aerospike-client-php/src \
&& phpize \
&& ./build.sh \
&& make install \
) \
&& \
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
( \
cd aerospike-client-php/src/aerospike \
&& phpize \
&& ./build.sh \
&& make install \
) \
else \
( \
cd aerospike-client-php/src \
&& phpize \
&& ./build.sh \
&& make install \
) \
fi \
&& rm /tmp/aerospike-client-php.tar.gz \
&& echo 'extension=aerospike.so' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \

View File

@ -50,7 +50,7 @@ alias cla="clear && ls -l"
alias cll="clear && ls -la"
alias cls="clear && ls"
alias code="cd /var/www"
alias ea="vi ~/aliases"
alias ea="vi ~/aliases.sh"
# Always enable colored `grep` output
# Note: `GREP_OPTIONS="--color=auto"` is deprecated, hence the alias usage.