Compare commits
38 Commits
Author | SHA1 | Date | |
---|---|---|---|
70c1be4168 | |||
e101e4d5b2 | |||
4658820437 | |||
0bbfb2d228 | |||
86a4108ef4 | |||
20c85904c5 | |||
aaef73c84d | |||
876935452e | |||
00df369e96 | |||
902198ab05 | |||
2e2cb6df22 | |||
39469e1404 | |||
947a791ad2 | |||
aa84dd8616 | |||
b788a8bbfd | |||
89051de67d | |||
1b865dd153 | |||
8180804ae0 | |||
303dadf33d | |||
764e484599 | |||
e92f08e323 | |||
1acbebc2a3 | |||
b2ab970d04 | |||
679d2b0aba | |||
fbc2afee71 | |||
1962327de1 | |||
d8b2b8c233 | |||
0f65c60a89 | |||
8624335f61 | |||
7ef36daaba | |||
4ce25e95b4 | |||
20b0181b6d | |||
dc234b9b28 | |||
29483bab8c | |||
85c57a0b6f | |||
2f996450e5 | |||
1823060c4b | |||
6fa2b75bb7 |
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
6
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -2,6 +2,6 @@
|
||||
|
||||
##### I completed the 3 steps below:
|
||||
|
||||
- [] I've read the [Contribution Guide](http://laradock.io/contributing).
|
||||
- [] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so).
|
||||
- [] I enjoyed my time contributing and making developer's life easier :)
|
||||
- [ ] I've read the [Contribution Guide](http://laradock.io/contributing).
|
||||
- [ ] I've updated the **documentation**. (refer to [this](http://laradock.io/contributing/#update-the-documentation-site) for how to do so).
|
||||
- [ ] I enjoyed my time contributing and making developer's life easier :)
|
||||
|
@ -1,4 +1,4 @@
|
||||
baseurl = "http://laradock.io/"
|
||||
baseurl = "https://laradock.io/"
|
||||
languageCode = "en-us"
|
||||
publishDir = "../docs"
|
||||
title = "Laradock"
|
||||
|
@ -323,7 +323,7 @@ PHP_FPM_INSTALL_PHPDBG=true
|
||||
<a name="Setup remote debugging for PhpStorm on Linux"></a>
|
||||
## Setup remote debugging for PhpStorm on Linux
|
||||
|
||||
- Make sure you have followed the steps above in the [Install Xdebug section](http://laradock.io/documentation/#install-xdebug).
|
||||
- Make sure you have followed the steps above in the [Install Xdebug section](#install-xdebug).
|
||||
|
||||
- Make sure Xdebug accepts connections and listens on port 9000. (Should be default configuration).
|
||||
|
||||
@ -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>
|
||||
@ -407,7 +429,7 @@ To learn more about how Docker publishes ports, please read [this excellent post
|
||||
<a name="Digital-Ocean"></a>
|
||||
## Setup Laravel and Docker on Digital Ocean
|
||||
|
||||
### [Full Guide Here](https://github.com/laradock/laradock/blob/master/_guides/digital_ocean.md)
|
||||
### [Full Guide Here](/guides/#Digital-Ocean)
|
||||
|
||||
|
||||
|
||||
@ -522,6 +544,7 @@ b) add a new service container by simply copy-paste this section below PHP-FPM c
|
||||
context: ./php-worker
|
||||
args:
|
||||
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL} #Optionally install PGSQL PHP drivers
|
||||
- INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH} #Optionally install BCMath php package
|
||||
volumes_from:
|
||||
- applications
|
||||
depends_on:
|
||||
@ -542,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
|
||||
@ -554,6 +599,19 @@ docker-compose up -d netdata
|
||||
|
||||
2 - Open your browser and visit the localhost on port **19999**: `http://localhost:19999`
|
||||
|
||||
<br>
|
||||
<a name="Use-Metabase"></a>
|
||||
## Use Metabase
|
||||
|
||||
1 - Run the Metabase Container (`metbase`) with the `docker-compose up` command. Example:
|
||||
|
||||
```bash
|
||||
docker-compose up -d metabase
|
||||
```
|
||||
|
||||
2 - Open your browser and visit the localhost on port **3030**: `http://localhost:3030`
|
||||
|
||||
3 - You can use environment to configure Metabase container. See docs in: [Running Metabase on Docker](https://www.metabase.com/docs/v0.12.0/operations-guide/running-metabase-on-docker.html)
|
||||
|
||||
|
||||
|
||||
@ -739,6 +797,25 @@ docker-compose up -d mariadb phpmyadmin
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-Gitlab"></a>
|
||||
## Use Gitlab
|
||||
|
||||
1 - Run the Gitlab Container (`gitlab`) with the `docker-compose up` command. Example:
|
||||
|
||||
```bash
|
||||
docker-compose up -d gitlab
|
||||
```
|
||||
|
||||
2 - Open your browser and visit the localhost on port **8989**: `http://localhost:8989`
|
||||
<br>
|
||||
*Note: You may change GITLAB_DOMAIN_NAME to your own domain name like `http://gitlab.example.com` default is `http://localhost`*
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<a name="Use-Adminer"></a>
|
||||
## Use Adminer
|
||||
@ -1456,6 +1533,42 @@ e) set it to `true`
|
||||
|
||||
|
||||
|
||||
<a name="Install php calendar extension"></a>
|
||||
## Install php calendar extension
|
||||
|
||||
1 - Open the `.env` file
|
||||
<br>
|
||||
2 - Search for the `PHP_FPM_INSTALL_CALENDAR` argument under the PHP-FPM container
|
||||
<br>
|
||||
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>
|
||||
@ -1463,7 +1576,7 @@ e) set it to `true`
|
||||
## PHPStorm Debugging Guide
|
||||
Remote debug Laravel web and phpunit tests.
|
||||
|
||||
[**Debugging Guide Here**](https://github.com/laradock/laradock/blob/master/_guides/phpstorm.md)
|
||||
[**Debugging Guide Here**](/guides/#PHPStorm-Debugging)
|
||||
|
||||
|
||||
|
||||
|
@ -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.
|
||||
@ -94,7 +94,7 @@ Make sure to replace `project-z` with your project folder name.
|
||||
|
||||
<a name="B"></a>
|
||||
### B) Setup for Multiple Projects:
|
||||
> (Follow these steps if you want a single Docker environment for all your project)
|
||||
> (Follow these steps if you want a single Docker environment for all your projects)
|
||||
|
||||
1 - Clone this repository anywhere on your machine (similar to [Steps A.2. from above](#A2)):
|
||||
|
||||
|
@ -197,7 +197,7 @@ This is needed Prior to Creating Let's Encypt
|
||||
## Run Your Caddy Container without the -d flag and Generate SSL with Let's Encrypt
|
||||
|
||||
```
|
||||
$root@server:~/laravel/laradock/caddy# docker-compose up caddy
|
||||
$root@server:~/laravel/laradock# docker-compose up caddy
|
||||
```
|
||||
|
||||
You'll be prompt here to enter your email... you may enter it or not
|
||||
@ -218,8 +218,8 @@ After it finishes, press `Ctrl` + `C` to exit.
|
||||
## Stop All Containers and ReRun Caddy and Other Containers on Background
|
||||
|
||||
```
|
||||
$root@server:~/laravel/laradock/caddy# docker-compose down
|
||||
$root@server:~/laravel/laradock/caddy# docker-compose up -d mysql caddy
|
||||
$root@server:~/laravel/laradock# docker-compose down
|
||||
$root@server:~/laravel/laradock# docker-compose up -d mysql caddy
|
||||
```
|
||||
|
||||
View your Site in the Browser Securely Using HTTPS (https://yourdomain.com)
|
||||
|
@ -97,7 +97,7 @@ Beanstalkd - RabbitMQ - PHP Worker
|
||||
- **Queueing Management:**
|
||||
Beanstalkd Console - RabbitMQ Console
|
||||
- **Random Tools:**
|
||||
HAProxy - Certbot - Blackfire - Selenium - Jenkins - ElasticSearch - Kibana - Grafana - 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.
|
||||
|
@ -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"]
|
||||
|
@ -44,3 +44,8 @@ laradock2.demo:80 {
|
||||
#proxy domain.com
|
||||
#cors
|
||||
}
|
||||
|
||||
laradock3.demo:80 {
|
||||
import authlist.conf
|
||||
root /var/www/public
|
||||
}
|
1
caddy/caddy/authlist.conf
Normal file
1
caddy/caddy/authlist.conf
Normal file
@ -0,0 +1 @@
|
||||
basicauth / laradock laradock
|
@ -47,11 +47,13 @@ services:
|
||||
build:
|
||||
context: ./workspace
|
||||
args:
|
||||
- PHP_VERSION=${PHP_VERSION}
|
||||
- LARADOCK_PHP_VERSION=${PHP_VERSION}
|
||||
- INSTALL_SUBVERSION=${WORKSPACE_INSTALL_SUBVERSION}
|
||||
- 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}
|
||||
@ -115,10 +118,11 @@ services:
|
||||
build:
|
||||
context: ./php-fpm
|
||||
args:
|
||||
- PHP_VERSION=${PHP_VERSION}
|
||||
- LARADOCK_PHP_VERSION=${PHP_VERSION}
|
||||
- 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}
|
||||
@ -143,6 +147,9 @@ services:
|
||||
- INSTALL_SWOOLE=${PHP_FPM_INSTALL_SWOOLE}
|
||||
- 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}
|
||||
@ -153,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:
|
||||
@ -167,6 +175,7 @@ services:
|
||||
args:
|
||||
- PHP_VERSION=${PHP_VERSION}
|
||||
- INSTALL_PGSQL=${PHP_WORKER_INSTALL_PGSQL}
|
||||
- INSTALL_BCMATH=${PHP_WORKER_INSTALL_BCMATH}
|
||||
volumes:
|
||||
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
|
||||
- ./php-worker/supervisord.d:/etc/supervisord.d
|
||||
@ -466,7 +475,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:
|
||||
@ -521,7 +530,6 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
|
||||
### ElasticSearch ########################################
|
||||
elasticsearch:
|
||||
build: ./elasticsearch
|
||||
@ -544,7 +552,6 @@ services:
|
||||
- frontend
|
||||
- backend
|
||||
|
||||
|
||||
### Kibana ##############################################
|
||||
kibana:
|
||||
build: ./kibana
|
||||
@ -717,9 +724,110 @@ services:
|
||||
volumes:
|
||||
- ${DATA_PATH_HOST}/portainer_data:/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
extra_hosts:
|
||||
- "dockerhost:${DOCKER_HOST_IP}"
|
||||
ports:
|
||||
- 9010:9000
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### Gitlab ################################################
|
||||
gitlab:
|
||||
build:
|
||||
context: ./gitlab
|
||||
environment:
|
||||
GITLAB_OMNIBUS_CONFIG: |
|
||||
external_url '${GITLAB_DOMAIN_NAME}'
|
||||
redis['enable'] = false
|
||||
nginx['listen_https'] = false
|
||||
nginx['listen_port'] = 80
|
||||
postgresql['enable'] = false
|
||||
gitlab_rails['trusted_proxies'] = ['caddy','nginx','apache2']
|
||||
gitlab_rails['redis_host'] = 'redis'
|
||||
gitlab_rails['redis_database'] = 8
|
||||
gitlab_rails['db_host'] = 'postgres'
|
||||
gitlab_rails['db_username'] = 'laradock_gitlab'
|
||||
gitlab_rails['db_password'] = 'laradock_gitlab'
|
||||
gitlab_rails['db_database'] = 'laradock_gitlab'
|
||||
gitlab_rails['initial_root_password'] = '${GITLAB_ROOT_PASSWORD}'
|
||||
gitlab_rails['gitlab_shell_ssh_port'] = ${GITLAB_HOST_SSH_PORT}
|
||||
volumes:
|
||||
- ${DATA_PATH_HOST}/gitlab/config:/etc/gitlab
|
||||
- ${DATA_PATH_HOST}/gitlab/data:/var/opt/gitlab
|
||||
- ${GITLAB_HOST_LOG_PATH}:/var/log/gitlab
|
||||
ports:
|
||||
- "${GITLAB_HOST_HTTP_PORT}:80"
|
||||
- "${GITLAB_HOST_HTTPS_PORT}:443"
|
||||
- "${GITLAB_HOST_SSH_PORT}:22"
|
||||
networks:
|
||||
- backend
|
||||
depends_on:
|
||||
- redis
|
||||
- postgres
|
||||
gitlab-runner:
|
||||
image: gitlab/gitlab-runner:latest
|
||||
environment:
|
||||
- CI_SERVER_URL=${GITLAB_DOMAIN_NAME}
|
||||
volumes:
|
||||
- ${DATA_PATH_HOST}/gitlab/runner:/etc/gitlab-runner
|
||||
- /var/run/docker.sock:/var/run/docker.sock:rw
|
||||
restart: always
|
||||
|
||||
### JupyterHub #########################################
|
||||
jupyterhub:
|
||||
build:
|
||||
context: ./jupyterhub
|
||||
depends_on:
|
||||
- postgres
|
||||
- jupyterhub-user
|
||||
restart: always
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:rw
|
||||
- ${DATA_PATH_HOST}/jupyterhub/:/data
|
||||
- ${JUPYTERHUB_CUSTOM_CONFIG}:/jupyterhub_config.py
|
||||
- ${JUPYTERHUB_USER_DATA}:/user-data
|
||||
- ${JUPYTERHUB_USER_LIST}:/userlist
|
||||
networks:
|
||||
- backend
|
||||
ports:
|
||||
- "${JUPYTERHUB_PORT}:80"
|
||||
environment:
|
||||
- TERM=xterm
|
||||
- JUPYTERHUB_USER_DATA=${JUPYTERHUB_USER_DATA}
|
||||
- JUPYTERHUB_POSTGRES_DB=${JUPYTERHUB_POSTGRES_DB}
|
||||
- JUPYTERHUB_POSTGRES_USER=${JUPYTERHUB_POSTGRES_USER}
|
||||
- JUPYTERHUB_POSTGRES_HOST=${JUPYTERHUB_POSTGRES_HOST}
|
||||
- JUPYTERHUB_POSTGRES_PASSWORD=${JUPYTERHUB_POSTGRES_PASSWORD}
|
||||
- JUPYTERHUB_OAUTH_CALLBACK_URL=${JUPYTERHUB_OAUTH_CALLBACK_URL}
|
||||
- JUPYTERHUB_OAUTH_CLIENT_ID=${JUPYTERHUB_OAUTH_CLIENT_ID}
|
||||
- JUPYTERHUB_OAUTH_CLIENT_SECRET=${JUPYTERHUB_OAUTH_CLIENT_SECRET}
|
||||
- JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE=${JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE}
|
||||
jupyterhub-user:
|
||||
build:
|
||||
context: ./jupyterhub
|
||||
dockerfile: Dockerfile.user
|
||||
command: ["sh", "-c", "echo \"build only\""]
|
||||
|
||||
### IPython #########################################
|
||||
ipython-controller:
|
||||
build:
|
||||
context: ./ipython
|
||||
dockerfile: Dockerfile.controller
|
||||
networks:
|
||||
- backend
|
||||
extra_hosts:
|
||||
- "laradock-ipython:${LARADOCK_IPYTHON_CONTROLLER_IP}"
|
||||
ports:
|
||||
- "33327-33338:33327-33338"
|
||||
ipython-engine:
|
||||
build:
|
||||
context: ./ipython
|
||||
dockerfile: Dockerfile.engine
|
||||
networks:
|
||||
- backend
|
||||
extra_hosts:
|
||||
- "laradock-ipython:${LARADOCK_IPYTHON_CONTROLLER_IP}"
|
||||
|
||||
### Docker-in-Docker ################################################
|
||||
docker-in-docker:
|
||||
image: docker:dind
|
||||
@ -742,3 +850,269 @@ services:
|
||||
- "${NETDATA_PORT}:19999"
|
||||
networks:
|
||||
- backend
|
||||
|
||||
### PHPRedisAdmin ################################################
|
||||
phpredisadmin:
|
||||
image: erikdubbelboer/phpredisadmin:latest
|
||||
environment:
|
||||
- ADMIN_USER=${REDIS_WEBUI_USERNAME}
|
||||
- ADMIN_PASS=${REDIS_WEBUI_PASSWORD}
|
||||
- REDIS_1_HOST=${REDIS_WEBUI_CONNECT_HOST}
|
||||
- REDIS_1_PORT=${REDIS_WEBUI_CONNECT_PORT}
|
||||
networks:
|
||||
- backend
|
||||
ports:
|
||||
- "${REDIS_WEBUI_PORT}:80"
|
||||
depends_on:
|
||||
- redis
|
||||
|
||||
### MongoWebUI ################################################
|
||||
mongo-webui:
|
||||
build:
|
||||
context: ./mongo-webui
|
||||
restart: always
|
||||
environment:
|
||||
- ROOT_URL=${MONGO_WEBUI_ROOT_URL}
|
||||
- MONGO_URL=${MONGO_WEBUI_MONGO_URL}
|
||||
- INSTALL_MONGO=${MONGO_WEBUI_INSTALL_MONGO}
|
||||
volumes:
|
||||
- ${DATA_PATH_HOST}/mongo-webui:/data/db
|
||||
ports:
|
||||
- "${MONGO_WEBUI_PORT}:3000"
|
||||
networks:
|
||||
- backend
|
||||
depends_on:
|
||||
- mongo
|
||||
|
||||
### Metabase #################################################
|
||||
metabase:
|
||||
image: metabase/metabase:latest
|
||||
environment:
|
||||
- MB_DB_FILE=/metabase-data/${METABASE_DB_FILE}
|
||||
ports:
|
||||
- ${METABASE_PORT}:3000
|
||||
volumes:
|
||||
- ${DATA_PATH_HOST}/metabase-data:/metabase-data
|
||||
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
|
||||
|
125
env-example
125
env-example
@ -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
|
||||
@ -148,10 +152,15 @@ PHP_FPM_INSTALL_LDAP=false
|
||||
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 ############################################
|
||||
|
||||
PHP_WORKER_INSTALL_PGSQL=false
|
||||
PHP_WORKER_INSTALL_BCMATH=false
|
||||
|
||||
### NGINX #################################################
|
||||
|
||||
@ -334,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 #############################################
|
||||
|
||||
@ -348,7 +359,7 @@ 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 ###################################
|
||||
|
||||
@ -360,5 +371,115 @@ SOLR_VERSION=5.5
|
||||
SOLR_PORT=8983
|
||||
SOLR_DATAIMPORTHANDLER_MYSQL=false
|
||||
|
||||
### GITLAB ###############################################
|
||||
GITLAB_HOST_HTTP_PORT=8989
|
||||
GITLAB_HOST_HTTPS_PORT=9898
|
||||
GITLAB_HOST_SSH_PORT=2289
|
||||
GITLAB_DOMAIN_NAME=http://localhost
|
||||
GITLAB_ROOT_PASSWORD=laradock
|
||||
GITLAB_HOST_LOG_PATH=./logs/gitlab
|
||||
|
||||
### JUPYTERHUB ###############################################
|
||||
JUPYTERHUB_POSTGRES_HOST=postgres
|
||||
JUPYTERHUB_POSTGRES_USER=laradock_jupyterhub
|
||||
JUPYTERHUB_POSTGRES_PASSWORD=laradock_jupyterhub
|
||||
JUPYTERHUB_POSTGRES_DB=laradock_jupyterhub
|
||||
JUPYTERHUB_PORT=9991
|
||||
JUPYTERHUB_OAUTH_CALLBACK_URL=http://laradock:9991/hub/oauth_callback
|
||||
JUPYTERHUB_OAUTH_CLIENT_ID={GITHUB_CLIENT_ID}
|
||||
JUPYTERHUB_OAUTH_CLIENT_SECRET={GITHUB_CLIENT_SECRET}
|
||||
JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE=laradock_jupyterhub-user
|
||||
JUPYTERHUB_CUSTOM_CONFIG=./jupyterhub/jupyterhub_config.py
|
||||
JUPYTERHUB_USER_DATA=/jupyterhub
|
||||
JUPYTERHUB_USER_LIST=./jupyterhub/userlist
|
||||
|
||||
### IPYTHON ##################################################
|
||||
LARADOCK_IPYTHON_CONTROLLER_IP=127.0.0.1
|
||||
|
||||
### NETDATA ###############################################
|
||||
NETDATA_PORT=19999
|
||||
|
||||
### PHPREDISADMIN #########################################
|
||||
REDIS_WEBUI_USERNAME=laradock
|
||||
REDIS_WEBUI_PASSWORD=laradock
|
||||
REDIS_WEBUI_CONNECT_HOST=redis
|
||||
REDIS_WEBUI_CONNECT_PORT=6379
|
||||
REDIS_WEBUI_PORT=9987
|
||||
|
||||
### MONGOWEBUI ###############################################
|
||||
MONGO_WEBUI_PORT=3000
|
||||
MONGO_WEBUI_ROOT_URL=http://localhost
|
||||
MONGO_WEBUI_MONGO_URL=mongodb://mongo:27017/
|
||||
MONGO_WEBUI_INSTALL_MONGO=false
|
||||
|
||||
### METABASE ###############################################
|
||||
METABASE_PORT=3030
|
||||
METABASE_DB_FILE=metabase.db
|
||||
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
|
||||
|
3
gitlab/Dockerfile
Normal file
3
gitlab/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM gitlab/gitlab-ce:latest
|
||||
|
||||
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
5
ide-codiad/Dockerfile
Normal file
5
ide-codiad/Dockerfile
Normal 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
43
ide-codiad/config.php
Normal 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
21
ide-icecoder/Dockerfile
Normal 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
5
ide-theia/Dockerfile
Normal 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
3
ide-webide/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM webide/webide
|
||||
|
||||
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
17
ipython/Dockerfile.controller
Normal file
17
ipython/Dockerfile.controller
Normal file
@ -0,0 +1,17 @@
|
||||
FROM python:3.5-alpine
|
||||
|
||||
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
||||
|
||||
USER root
|
||||
|
||||
RUN apk add --no-cache build-base
|
||||
|
||||
RUN python -m pip --quiet --no-cache-dir install \
|
||||
ipyparallel
|
||||
|
||||
RUN ipython profile create --parallel --profile=default
|
||||
|
||||
COPY ipcontroller-client.json /root/.ipython/profile_default/security/ipcontroller-client.json
|
||||
COPY ipcontroller-engine.json /root/.ipython/profile_default/security/ipcontroller-engine.json
|
||||
|
||||
CMD ["sh","-c","ipcontroller --ip=* --reuse"]
|
23
ipython/Dockerfile.engine
Normal file
23
ipython/Dockerfile.engine
Normal file
@ -0,0 +1,23 @@
|
||||
FROM python:3.5-alpine
|
||||
|
||||
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
||||
|
||||
USER root
|
||||
|
||||
RUN apk add --no-cache build-base
|
||||
|
||||
RUN python -m pip --quiet --no-cache-dir install \
|
||||
ipyparallel \
|
||||
numpy \
|
||||
pandas \
|
||||
pymongo \
|
||||
redis \
|
||||
requests \
|
||||
bs4
|
||||
|
||||
RUN ipython profile create --parallel --profile=default
|
||||
|
||||
COPY ipcontroller-client.json /root/.ipython/profile_default/security/ipcontroller-client.json
|
||||
COPY ipcontroller-engine.json /root/.ipython/profile_default/security/ipcontroller-engine.json
|
||||
|
||||
CMD ["sh","-c","ipcluster engines"]
|
16
ipython/ipcontroller-client.json
Normal file
16
ipython/ipcontroller-client.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"key": "868074dd-060311910ab3d6991611bccf",
|
||||
"signature_scheme": "hmac-sha256",
|
||||
"unpack": "json",
|
||||
"pack": "json",
|
||||
"ssh": "",
|
||||
"task_scheme": "leastload",
|
||||
"interface": "tcp://*",
|
||||
"location": "laradock-ipython",
|
||||
"notification": 33338,
|
||||
"iopub": 33337,
|
||||
"control": 33336,
|
||||
"mux": 33335,
|
||||
"task": 33334,
|
||||
"registration": 33333
|
||||
}
|
16
ipython/ipcontroller-engine.json
Normal file
16
ipython/ipcontroller-engine.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"key": "868074dd-060311910ab3d6991611bccf",
|
||||
"signature_scheme": "hmac-sha256",
|
||||
"unpack": "json",
|
||||
"pack": "json",
|
||||
"ssh": "",
|
||||
"interface": "tcp://*",
|
||||
"location": "laradock-ipython",
|
||||
"iopub": 33327,
|
||||
"hb_ping": 33328,
|
||||
"hb_pong": 33329,
|
||||
"control": 33330,
|
||||
"mux": 33331,
|
||||
"task": 33332,
|
||||
"registration": 33333
|
||||
}
|
26
jupyterhub/Dockerfile
Normal file
26
jupyterhub/Dockerfile
Normal file
@ -0,0 +1,26 @@
|
||||
FROM python
|
||||
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
||||
|
||||
ENV JUPYTERHUB_USER_DATA ${JUPYTERHUB_USER_DATA}
|
||||
ENV JUPYTERHUB_POSTGRES_DB ${JUPYTERHUB_POSTGRES_DB}
|
||||
ENV JUPYTERHUB_POSTGRES_USER ${JUPYTERHUB_POSTGRES_USER}
|
||||
ENV JUPYTERHUB_POSTGRES_HOST ${JUPYTERHUB_POSTGRES_HOST}
|
||||
ENV JUPYTERHUB_POSTGRES_PASSWORD ${JUPYTERHUB_POSTGRES_PASSWORD}
|
||||
ENV JUPYTERHUB_OAUTH_CALLBACK_URL ${JUPYTERHUB_OAUTH_CALLBACK_URL}
|
||||
ENV JUPYTERHUB_OAUTH_CLIENT_ID ${JUPYTERHUB_OAUTH_CLIENT_ID}
|
||||
ENV JUPYTERHUB_OAUTH_CLIENT_SECRET ${JUPYTERHUB_OAUTH_CLIENT_SECRET}
|
||||
ENV JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE ${JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE}
|
||||
|
||||
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
|
||||
|
||||
RUN apt update -yqq && \
|
||||
apt-get install -y nodejs
|
||||
|
||||
RUN npm install -g configurable-http-proxy
|
||||
|
||||
RUN pip install jupyterhub
|
||||
RUN pip install oauthenticator
|
||||
RUN pip install dockerspawner
|
||||
RUN pip install psycopg2 psycopg2-binary
|
||||
|
||||
CMD ["sh", "-c", "jupyterhub upgrade-db && jupyterhub -f /jupyterhub_config.py"]
|
72
jupyterhub/Dockerfile.user
Normal file
72
jupyterhub/Dockerfile.user
Normal file
@ -0,0 +1,72 @@
|
||||
FROM tensorflow/tensorflow:latest-gpu
|
||||
|
||||
MAINTAINER ahkui <ahkui@outlook.com>
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
python \
|
||||
python-dev \
|
||||
&& \
|
||||
apt-get autoremove -y && \
|
||||
apt-get autoclean && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
wget \
|
||||
git \
|
||||
&& \
|
||||
apt-get autoremove -y && \
|
||||
apt-get autoclean && \
|
||||
apt-get clean && \
|
||||
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
RUN curl -O https://bootstrap.pypa.io/get-pip.py && \
|
||||
python3 get-pip.py && \
|
||||
rm get-pip.py
|
||||
|
||||
RUN python3 -m pip --quiet --no-cache-dir install \
|
||||
Pillow \
|
||||
h5py \
|
||||
ipykernel \
|
||||
jupyter \
|
||||
notebook \
|
||||
jupyterhub \
|
||||
matplotlib \
|
||||
numpy \
|
||||
pandas \
|
||||
scipy \
|
||||
sklearn \
|
||||
Flask \
|
||||
gunicorn \
|
||||
pymongo \
|
||||
redis \
|
||||
requests \
|
||||
ipyparallel \
|
||||
bs4 \
|
||||
&& \
|
||||
python3 -m ipykernel.kernelspec
|
||||
|
||||
RUN pip --no-cache-dir install \
|
||||
https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.8.0-cp35-cp35m-linux_x86_64.whl
|
||||
|
||||
RUN ln -s -f /usr/bin/python3 /usr/bin/python
|
||||
|
||||
COPY start.sh /usr/local/bin/
|
||||
COPY start-notebook.sh /usr/local/bin/
|
||||
COPY start-singleuser.sh /usr/local/bin/
|
||||
RUN chmod +x /usr/local/bin/start.sh
|
||||
RUN chmod +x /usr/local/bin/start-notebook.sh
|
||||
RUN chmod +x /usr/local/bin/start-singleuser.sh
|
||||
|
||||
RUN wget --quiet https://github.com/krallin/tini/releases/download/v0.10.0/tini && \
|
||||
mv tini /usr/local/bin/tini && \
|
||||
chmod +x /usr/local/bin/tini
|
||||
|
||||
# cleanup
|
||||
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
ENTRYPOINT ["tini", "--"]
|
||||
|
||||
CMD ["start-notebook.sh"]
|
||||
|
||||
|
121
jupyterhub/jupyterhub_config.py
Normal file
121
jupyterhub/jupyterhub_config.py
Normal file
@ -0,0 +1,121 @@
|
||||
# Copyright (c) Jupyter Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
|
||||
# Configuration file for JupyterHub
|
||||
import os
|
||||
|
||||
c = get_config()
|
||||
|
||||
def create_dir_hook(spawner):
|
||||
username = spawner.user.name # get the username
|
||||
volume_path = os.path.join('/user-data', username)
|
||||
if not os.path.exists(volume_path):
|
||||
# create a directory with umask 0755
|
||||
# hub and container user must have the same UID to be writeable
|
||||
# still readable by other users on the system
|
||||
os.mkdir(volume_path, 0o755)
|
||||
os.chown(volume_path, 1000,100)
|
||||
# now do whatever you think your user needs
|
||||
# ...
|
||||
pass
|
||||
|
||||
# attach the hook function to the spawner
|
||||
c.Spawner.pre_spawn_hook = create_dir_hook
|
||||
|
||||
# We rely on environment variables to configure JupyterHub so that we
|
||||
# avoid having to rebuild the JupyterHub container every time we change a
|
||||
# configuration parameter.
|
||||
|
||||
# Spawn single-user servers as Docker containers
|
||||
c.JupyterHub.spawner_class = 'dockerspawner.DockerSpawner'
|
||||
|
||||
# Spawn containers from this image
|
||||
c.DockerSpawner.image = os.environ['JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE']
|
||||
|
||||
# JupyterHub requires a single-user instance of the Notebook server, so we
|
||||
# default to using the `start-singleuser.sh` script included in the
|
||||
# jupyter/docker-stacks *-notebook images as the Docker run command when
|
||||
# spawning containers. Optionally, you can override the Docker run command
|
||||
# using the DOCKER_SPAWN_CMD environment variable.
|
||||
spawn_cmd = os.environ.get('JUPYTERHUB_DOCKER_SPAWN_CMD', "start-singleuser.sh")
|
||||
c.DockerSpawner.extra_create_kwargs.update({ 'command': spawn_cmd })
|
||||
|
||||
# Connect containers to this Docker network
|
||||
network_name = os.environ.get('JUPYTERHUB_NETWORK_NAME','laradock_backend')
|
||||
c.DockerSpawner.use_internal_ip = True
|
||||
c.DockerSpawner.network_name = network_name
|
||||
|
||||
# Pass the network name as argument to spawned containers
|
||||
c.DockerSpawner.extra_host_config = { 'network_mode': network_name, 'runtime': 'nvidia' }
|
||||
# c.DockerSpawner.extra_host_config = { 'network_mode': network_name, "devices":["/dev/nvidiactl","/dev/nvidia-uvm","/dev/nvidia0"] }
|
||||
# Explicitly set notebook directory because we'll be mounting a host volume to
|
||||
# it. Most jupyter/docker-stacks *-notebook images run the Notebook server as
|
||||
# user `jovyan`, and set the notebook directory to `/home/jovyan/work`.
|
||||
# We follow the same convention.
|
||||
# notebook_dir = os.environ.get('JUPYTERHUB_DOCKER_NOTEBOOK_DIR') or '/home/jovyan/work'
|
||||
notebook_dir = '/notebooks'
|
||||
c.DockerSpawner.notebook_dir = notebook_dir
|
||||
|
||||
# Mount the real user's Docker volume on the host to the notebook user's
|
||||
# notebook directory in the container
|
||||
user_data = os.environ.get('JUPYTERHUB_USER_DATA','/jupyterhub')
|
||||
c.DockerSpawner.volumes = {
|
||||
user_data+'/{username}': notebook_dir
|
||||
}
|
||||
|
||||
c.DockerSpawner.extra_create_kwargs.update({ 'user': 'root'})
|
||||
|
||||
# volume_driver is no longer a keyword argument to create_container()
|
||||
# c.DockerSpawner.extra_create_kwargs.update({ 'volume_driver': 'local' })
|
||||
# Remove containers once they are stopped
|
||||
c.DockerSpawner.remove_containers = True
|
||||
|
||||
# For debugging arguments passed to spawned containers
|
||||
c.DockerSpawner.debug = True
|
||||
|
||||
# User containers will access hub by container name on the Docker network
|
||||
c.JupyterHub.hub_ip = 'jupyterhub'
|
||||
c.JupyterHub.hub_port = 8000
|
||||
|
||||
# TLS config
|
||||
c.JupyterHub.port = 80
|
||||
# c.JupyterHub.ssl_key = os.environ['SSL_KEY']
|
||||
# c.JupyterHub.ssl_cert = os.environ['SSL_CERT']
|
||||
|
||||
# Authenticate users with GitHub OAuth
|
||||
c.JupyterHub.authenticator_class = 'oauthenticator.GitHubOAuthenticator'
|
||||
c.GitHubOAuthenticator.oauth_callback_url = os.environ['JUPYTERHUB_OAUTH_CALLBACK_URL']
|
||||
c.GitHubOAuthenticator.client_id = os.environ['JUPYTERHUB_OAUTH_CLIENT_ID']
|
||||
c.GitHubOAuthenticator.client_secret = os.environ['JUPYTERHUB_OAUTH_CLIENT_SECRET']
|
||||
|
||||
# Persist hub data on volume mounted inside container
|
||||
data_dir = '/data'
|
||||
|
||||
c.JupyterHub.cookie_secret_file = os.path.join(data_dir,
|
||||
'jupyterhub_cookie_secret')
|
||||
|
||||
print(os.environ)
|
||||
|
||||
c.JupyterHub.db_url = 'postgresql://{user}:{password}@{host}/{db}'.format(
|
||||
user=os.environ['JUPYTERHUB_POSTGRES_USER'],
|
||||
host=os.environ['JUPYTERHUB_POSTGRES_HOST'],
|
||||
password=os.environ['JUPYTERHUB_POSTGRES_PASSWORD'],
|
||||
db=os.environ['JUPYTERHUB_POSTGRES_DB'],
|
||||
)
|
||||
|
||||
# Whitlelist users and admins
|
||||
c.Authenticator.whitelist = whitelist = set()
|
||||
c.Authenticator.admin_users = admin = set()
|
||||
c.JupyterHub.admin_access = True
|
||||
pwd = os.path.dirname(__file__)
|
||||
with open(os.path.join(pwd, 'userlist')) as f:
|
||||
for line in f:
|
||||
if not line:
|
||||
continue
|
||||
parts = line.split()
|
||||
name = parts[0]
|
||||
print(name)
|
||||
whitelist.add(name)
|
||||
if len(parts) > 1 and parts[1] == 'admin':
|
||||
admin.add(name)
|
||||
admin.add('laradock')
|
12
jupyterhub/start-notebook.sh
Normal file
12
jupyterhub/start-notebook.sh
Normal file
@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) Jupyter Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
|
||||
set -e
|
||||
|
||||
if [[ ! -z "${JUPYTERHUB_API_TOKEN}" ]]; then
|
||||
# launched by JupyterHub, use single-user entrypoint
|
||||
exec /usr/local/bin/start-singleuser.sh $*
|
||||
else
|
||||
. /usr/local/bin/start.sh jupyter notebook $*
|
||||
fi
|
40
jupyterhub/start-singleuser.sh
Normal file
40
jupyterhub/start-singleuser.sh
Normal file
@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) Jupyter Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
|
||||
set -e
|
||||
|
||||
# set default ip to 0.0.0.0
|
||||
if [[ "$NOTEBOOK_ARGS $@" != *"--ip="* ]]; then
|
||||
NOTEBOOK_ARGS="--ip=0.0.0.0 $NOTEBOOK_ARGS"
|
||||
fi
|
||||
|
||||
# handle some deprecated environment variables
|
||||
# from DockerSpawner < 0.8.
|
||||
# These won't be passed from DockerSpawner 0.9,
|
||||
# so avoid specifying --arg=empty-string
|
||||
# if [ ! -z "$NOTEBOOK_DIR" ]; then
|
||||
# NOTEBOOK_ARGS="--notebook-dir='$NOTEBOOK_DIR' $NOTEBOOK_ARGS"
|
||||
# fi
|
||||
if [ ! -z "$JPY_PORT" ]; then
|
||||
NOTEBOOK_ARGS="--port=$JPY_PORT $NOTEBOOK_ARGS"
|
||||
fi
|
||||
if [ ! -z "$JPY_USER" ]; then
|
||||
NOTEBOOK_ARGS="--user=$JPY_USER $NOTEBOOK_ARGS"
|
||||
fi
|
||||
if [ ! -z "$JPY_COOKIE_NAME" ]; then
|
||||
NOTEBOOK_ARGS="--cookie-name=$JPY_COOKIE_NAME $NOTEBOOK_ARGS"
|
||||
fi
|
||||
if [ ! -z "$JPY_BASE_URL" ]; then
|
||||
NOTEBOOK_ARGS="--base-url=$JPY_BASE_URL $NOTEBOOK_ARGS"
|
||||
fi
|
||||
if [ ! -z "$JPY_HUB_PREFIX" ]; then
|
||||
NOTEBOOK_ARGS="--hub-prefix=$JPY_HUB_PREFIX $NOTEBOOK_ARGS"
|
||||
fi
|
||||
if [ ! -z "$JPY_HUB_API_URL" ]; then
|
||||
NOTEBOOK_ARGS="--hub-api-url=$JPY_HUB_API_URL $NOTEBOOK_ARGS"
|
||||
fi
|
||||
|
||||
NOTEBOOK_ARGS=" --allow-root --notebook-dir='/notebooks' $NOTEBOOK_ARGS"
|
||||
|
||||
. /usr/local/bin/start.sh jupyterhub-singleuser $NOTEBOOK_ARGS $@
|
7
jupyterhub/start.sh
Normal file
7
jupyterhub/start.sh
Normal file
@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) Jupyter Development Team.
|
||||
# Distributed under the terms of the Modified BSD License.
|
||||
|
||||
set -e
|
||||
|
||||
exec sh -c "env PATH=$PATH $*"
|
1
jupyterhub/userlist
Normal file
1
jupyterhub/userlist
Normal file
@ -0,0 +1 @@
|
||||
laradock
|
3
mongo-webui/Dockerfile
Normal file
3
mongo-webui/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
||||
FROM mongoclient/mongoclient
|
||||
|
||||
LABEL maintainer="ahkui <ahkui@outlook.com>"
|
@ -9,9 +9,7 @@ LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
ARG TZ=UTC
|
||||
ENV TZ ${TZ}
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
RUN chown -R mysql:root /var/lib/mysql/
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && chown -R mysql:root /var/lib/mysql/
|
||||
|
||||
COPY my.cnf /etc/mysql/conf.d/my.cnf
|
||||
|
||||
|
@ -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'@'%' ;
|
||||
|
@ -12,12 +12,14 @@
|
||||
# Note: Base Image name format {image-tag}-{php-version}
|
||||
#
|
||||
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
ARG LARADOCK_PHP_VERSION
|
||||
|
||||
FROM laradock/php-fpm:2.2-${PHP_VERSION}
|
||||
FROM laradock/php-fpm:2.2-${LARADOCK_PHP_VERSION}
|
||||
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
ARG LARADOCK_PHP_VERSION
|
||||
|
||||
# Set Environment Variables
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
@ -48,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:
|
||||
###########################################################################
|
||||
@ -114,11 +133,10 @@ RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /usr/local/e
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PHPDBG=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_PHPDBG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get install -y --force-yes php${PHP_VERSION}-phpdbg \
|
||||
apt-get install -y --force-yes php${LARADOCK_PHP_VERSION}-phpdbg \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -324,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:
|
||||
###########################################################################
|
||||
@ -416,14 +449,16 @@ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
# Add Microsoft repo for Microsoft ODBC Driver 13 for Linux
|
||||
apt-get install -y apt-transport-https gnupg \
|
||||
&& curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
|
||||
&& curl https://packages.microsoft.com/config/debian/8/prod.list > /etc/apt/sources.list.d/mssql-release.list \
|
||||
&& curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources.list.d/mssql-release.list \
|
||||
&& apt-get update -yqq \
|
||||
# Install Dependencies
|
||||
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql locales \
|
||||
&& ACCEPT_EULA=Y apt-get install -y unixodbc unixodbc-dev libgss3 odbcinst msodbcsql17 locales \
|
||||
&& echo "en_US.UTF-8 UTF-8" > /etc/locale.gen \
|
||||
# link local aliases
|
||||
&& ln -sfn /etc/locale.alias /usr/share/locale/locale.alias \
|
||||
&& locale-gen \
|
||||
# Install pdo_sqlsrv and sqlsrv from PECL. Replace pdo_sqlsrv-4.1.8preview with preferred version.
|
||||
&& pecl install pdo_sqlsrv-4.1.8preview sqlsrv-4.1.8preview \
|
||||
&& pecl install pdo_sqlsrv sqlsrv \
|
||||
&& docker-php-ext-enable pdo_sqlsrv sqlsrv \
|
||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
||||
&& php -m | grep -q 'sqlsrv' \
|
||||
@ -469,13 +504,36 @@ RUN if [ ${INSTALL_IMAP} = true ]; then \
|
||||
docker-php-ext-install imap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
# Calendar:
|
||||
###########################################################################
|
||||
|
||||
USER root
|
||||
|
||||
ARG INSTALL_CALENDAR=false
|
||||
|
||||
RUN if [ ${INSTALL_CALENDAR} = true ]; then \
|
||||
docker-php-ext-configure calendar && \
|
||||
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:
|
||||
###########################################################################
|
||||
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
||||
RUN php -v | head -n 1 | grep -q "PHP ${LARADOCK_PHP_VERSION}."
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
@ -495,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"]
|
||||
|
@ -25,6 +25,12 @@ RUN apk --update add wget \
|
||||
RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml pcntl
|
||||
RUN pecl channel-update pecl.php.net && pecl install memcached mcrypt-1.0.1 && docker-php-ext-enable memcached
|
||||
|
||||
#Install BCMath package:
|
||||
ARG INSTALL_BCMATH=false
|
||||
RUN if [ ${INSTALL_BCMATH} = true ]; then \
|
||||
docker-php-ext-install bcmath \
|
||||
;fi
|
||||
|
||||
# Install PostgreSQL drivers:
|
||||
ARG INSTALL_PGSQL=false
|
||||
RUN if [ ${INSTALL_PGSQL} = true ]; then \
|
||||
|
1
php-worker/supervisord.d/.gitignore
vendored
Normal file
1
php-worker/supervisord.d/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
*.conf
|
@ -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
|
@ -1 +1,3 @@
|
||||
*.sh
|
||||
!init_gitlab_db.sh
|
||||
!init_jupyterhub_db.sh
|
||||
|
@ -13,20 +13,19 @@
|
||||
#
|
||||
# this sh script will auto run when the postgres container starts and the $DATA_PATH_HOST/postgres not found.
|
||||
#
|
||||
|
||||
set -e
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db1 WITH PASSWORD 'db1';
|
||||
# CREATE DATABASE db1;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
|
||||
# EOSQL
|
||||
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db2 WITH PASSWORD 'db2';
|
||||
# CREATE DATABASE db2;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
|
||||
# EOSQL
|
||||
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db3 WITH PASSWORD 'db3';
|
||||
# CREATE DATABASE db3;
|
||||
|
41
postgres/docker-entrypoint-initdb.d/init_gitlab_db.sh
Normal file
41
postgres/docker-entrypoint-initdb.d/init_gitlab_db.sh
Normal file
@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copy createdb.sh.example to createdb.sh
|
||||
# then uncomment then set database name and username to create you need databases
|
||||
#
|
||||
# example: .env POSTGRES_USER=appuser and need db name is myshop_db
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER myuser WITH PASSWORD 'mypassword';
|
||||
# CREATE DATABASE myshop_db;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE myshop_db TO myuser;
|
||||
# EOSQL
|
||||
#
|
||||
# this sh script will auto run when the postgres container starts and the $DATA_PATH_HOST/postgres not found.
|
||||
#
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db1 WITH PASSWORD 'db1';
|
||||
# CREATE DATABASE db1;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
|
||||
# EOSQL
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db2 WITH PASSWORD 'db2';
|
||||
# CREATE DATABASE db2;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
|
||||
# EOSQL
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db3 WITH PASSWORD 'db3';
|
||||
# CREATE DATABASE db3;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db3 TO db3;
|
||||
# EOSQL
|
||||
#
|
||||
### default database and user for gitlab ##############################################
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
CREATE USER laradock_gitlab WITH PASSWORD 'laradock_gitlab';
|
||||
CREATE DATABASE laradock_gitlab;
|
||||
GRANT ALL PRIVILEGES ON DATABASE laradock_gitlab TO laradock_gitlab;
|
||||
ALTER ROLE laradock_gitlab CREATEROLE SUPERUSER;
|
||||
EOSQL
|
41
postgres/docker-entrypoint-initdb.d/init_jupyterhub_db.sh
Normal file
41
postgres/docker-entrypoint-initdb.d/init_jupyterhub_db.sh
Normal file
@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copy createdb.sh.example to createdb.sh
|
||||
# then uncomment then set database name and username to create you need databases
|
||||
#
|
||||
# example: .env POSTGRES_USER=appuser and need db name is myshop_db
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER myuser WITH PASSWORD 'mypassword';
|
||||
# CREATE DATABASE myshop_db;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE myshop_db TO myuser;
|
||||
# EOSQL
|
||||
#
|
||||
# this sh script will auto run when the postgres container starts and the $DATA_PATH_HOST/postgres not found.
|
||||
#
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db1 WITH PASSWORD 'db1';
|
||||
# CREATE DATABASE db1;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db1 TO db1;
|
||||
# EOSQL
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db2 WITH PASSWORD 'db2';
|
||||
# CREATE DATABASE db2;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db2 TO db2;
|
||||
# EOSQL
|
||||
#
|
||||
# psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
# CREATE USER db3 WITH PASSWORD 'db3';
|
||||
# CREATE DATABASE db3;
|
||||
# GRANT ALL PRIVILEGES ON DATABASE db3 TO db3;
|
||||
# EOSQL
|
||||
#
|
||||
### default database and user for jupyterhub ##############################################
|
||||
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
|
||||
CREATE USER laradock_jupyterhub WITH PASSWORD 'laradock_jupyterhub';
|
||||
CREATE DATABASE laradock_jupyterhub;
|
||||
GRANT ALL PRIVILEGES ON DATABASE laradock_jupyterhub TO laradock_jupyterhub;
|
||||
ALTER ROLE laradock_jupyterhub CREATEROLE SUPERUSER;
|
||||
EOSQL
|
@ -14,6 +14,11 @@ if [ -n "${PHP_VERSION}" ]; then
|
||||
cp env-example .env
|
||||
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
|
||||
|
@ -266,7 +266,7 @@ sub vcl_hit {
|
||||
return (deliver);
|
||||
} else {
|
||||
# No candidate for grace. Fetch a fresh object.
|
||||
return(fetch);
|
||||
return(miss);
|
||||
}
|
||||
} else {
|
||||
# backend is sick - use full grace
|
||||
@ -275,12 +275,12 @@ sub vcl_hit {
|
||||
return (deliver);
|
||||
} else {
|
||||
# no graced object.
|
||||
return (fetch);
|
||||
return (miss);
|
||||
}
|
||||
}
|
||||
|
||||
# fetch & deliver once we get the result
|
||||
return (fetch); # Dead code, keep as a safeguard
|
||||
return (miss); # Dead code, keep as a safeguard
|
||||
}
|
||||
|
||||
sub vcl_miss {
|
||||
|
@ -11,7 +11,7 @@ exec bash -c \
|
||||
"exec varnishd \
|
||||
-a :$VARNISH_PORT \
|
||||
-T localhost:6082 \
|
||||
-F -u varnish \
|
||||
-F \
|
||||
-f $VARNISH_CONFIG \
|
||||
-s malloc,$CACHE_SIZE \
|
||||
$VARNISHD_PARAMS"
|
||||
$VARNISHD_PARAMS"
|
||||
|
@ -12,12 +12,14 @@
|
||||
# Note: Base Image name format {image-tag}-{php-version}
|
||||
#
|
||||
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
ARG LARADOCK_PHP_VERSION
|
||||
|
||||
FROM laradock/workspace:2.2-${PHP_VERSION}
|
||||
FROM laradock/workspace:2.2-${LARADOCK_PHP_VERSION}
|
||||
|
||||
LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"
|
||||
|
||||
ARG LARADOCK_PHP_VERSION
|
||||
|
||||
# Set Environment Variables
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
@ -172,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:
|
||||
###########################################################################
|
||||
@ -179,11 +208,10 @@ RUN if [ ${INSTALL_DRUSH} = true ]; then \
|
||||
USER root
|
||||
|
||||
ARG INSTALL_SOAP=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
# Install the PHP SOAP extension
|
||||
apt-get -y install libxml2-dev php${PHP_VERSION}-soap \
|
||||
apt-get -y install libxml2-dev php${LARADOCK_PHP_VERSION}-soap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -191,11 +219,10 @@ RUN if [ ${INSTALL_SOAP} = true ]; then \
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_LDAP=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_LDAP} = true ]; then \
|
||||
apt-get install -y libldap2-dev && \
|
||||
apt-get install -y php${PHP_VERSION}-ldap \
|
||||
apt-get install -y php${LARADOCK_PHP_VERSION}-ldap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -203,10 +230,9 @@ RUN if [ ${INSTALL_LDAP} = true ]; then \
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_IMAP=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_IMAP} = true ]; then \
|
||||
apt-get install -y php${PHP_VERSION}-imap \
|
||||
apt-get install -y php${LARADOCK_PHP_VERSION}-imap \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -229,21 +255,20 @@ RUN if [ ${INSTALL_SUBVERSION} = true ]; then \
|
||||
USER root
|
||||
|
||||
ARG INSTALL_XDEBUG=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get install -y php${PHP_VERSION}-xdebug && \
|
||||
sed -i 's/^;//g' /etc/php/${PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
|
||||
apt-get install -y php${LARADOCK_PHP_VERSION}-xdebug && \
|
||||
sed -i 's/^;//g' /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-xdebug.ini && \
|
||||
echo "alias phpunit='php -dzend_extension=xdebug.so /var/www/vendor/bin/phpunit'" >> ~/.bashrc \
|
||||
;fi
|
||||
|
||||
# ADD for REMOTE debugging
|
||||
COPY ./xdebug.ini /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
COPY ./xdebug.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
|
||||
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.remote_enable=0/xdebug.remote_enable=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini && \
|
||||
sed -i "s/xdebug.cli_color=0/xdebug.cli_color=1/" /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/xdebug.ini
|
||||
|
||||
###########################################################################
|
||||
# Phpdbg:
|
||||
@ -252,11 +277,10 @@ RUN sed -i "s/xdebug.remote_autostart=0/xdebug.remote_autostart=1/" /etc/php/${P
|
||||
USER root
|
||||
|
||||
ARG INSTALL_PHPDBG=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_PHPDBG} = true ]; then \
|
||||
# Load the xdebug extension only with phpunit commands
|
||||
apt-get install -y --force-yes php${PHP_VERSION}-phpdbg \
|
||||
apt-get install -y --force-yes php${LARADOCK_PHP_VERSION}-phpdbg \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -302,18 +326,17 @@ RUN if [ ${INSTALL_WORKSPACE_SSH} = true ]; then \
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_MONGO=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
# Install the mongodb extension
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
pecl install mongo && \
|
||||
echo "extension=mongo.so" >> /etc/php/${PHP_VERSION}/mods-available/mongo.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/mongo.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-mongo.ini \
|
||||
echo "extension=mongo.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongo.ini && \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongo.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-mongo.ini \
|
||||
;fi && \
|
||||
pecl install mongodb && \
|
||||
echo "extension=mongodb.so" >> /etc/php/${PHP_VERSION}/mods-available/mongodb.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/mongodb.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-mongodb.ini \
|
||||
echo "extension=mongodb.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongodb.ini && \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/mongodb.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-mongodb.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -321,13 +344,12 @@ RUN if [ ${INSTALL_MONGO} = true ]; then \
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_AMQP=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_AMQP} = true ]; then \
|
||||
apt-get install librabbitmq-dev -y && \
|
||||
pecl -q install amqp && \
|
||||
echo "extension=amqp.so" >> /etc/php/${PHP_VERSION}/mods-available/amqp.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/amqp.ini /etc/php/${PHP_VERSION}/cli/conf.d/30-amqp.ini \
|
||||
echo "extension=amqp.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/amqp.ini && \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/amqp.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/30-amqp.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -335,12 +357,11 @@ RUN if [ ${INSTALL_AMQP} = true ]; then \
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_PHPREDIS=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
||||
# Install Php Redis extension
|
||||
printf "\n" | pecl -q install -o -f redis && \
|
||||
echo "extension=redis.so" >> /etc/php/${PHP_VERSION}/mods-available/redis.ini && \
|
||||
echo "extension=redis.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/redis.ini && \
|
||||
phpenmod redis \
|
||||
;fi
|
||||
|
||||
@ -349,7 +370,6 @@ RUN if [ ${INSTALL_PHPREDIS} = true ]; then \
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_SWOOLE=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
# Install Php Swoole Extension
|
||||
@ -362,8 +382,8 @@ RUN if [ ${INSTALL_SWOOLE} = true ]; then \
|
||||
pecl install swoole; \
|
||||
fi \
|
||||
fi && \
|
||||
echo "extension=swoole.so" >> /etc/php/${PHP_VERSION}/mods-available/swoole.ini && \
|
||||
ln -s /etc/php/${PHP_VERSION}/mods-available/swoole.ini /etc/php/${PHP_VERSION}/cli/conf.d/20-swoole.ini \
|
||||
echo "extension=swoole.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini && \
|
||||
ln -s /etc/php/${LARADOCK_PHP_VERSION}/mods-available/swoole.ini /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-swoole.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -377,6 +397,21 @@ RUN if [ ${INSTALL_LIBPNG} = true ]; then \
|
||||
apt 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
|
||||
|
||||
###########################################################################
|
||||
# Drupal Console:
|
||||
###########################################################################
|
||||
@ -428,6 +463,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
|
||||
@ -448,7 +484,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} \
|
||||
@ -484,6 +520,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:
|
||||
###########################################################################
|
||||
@ -491,7 +530,6 @@ RUN if [ ${INSTALL_YARN} = true ]; then \
|
||||
USER root
|
||||
|
||||
ARG INSTALL_AEROSPIKE=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
ARG AEROSPIKE_PHP_REPOSITORY
|
||||
|
||||
RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
@ -501,16 +539,26 @@ 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/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||
&& echo 'aerospike.udf.lua_system_path=/usr/local/aerospike/lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/${PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||
&& 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 \
|
||||
&& echo 'aerospike.udf.lua_user_path=/usr/local/aerospike/usr-lua' >> /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/aerospike.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -520,15 +568,14 @@ RUN if [ ${INSTALL_AEROSPIKE} = true ]; then \
|
||||
USER root
|
||||
|
||||
ARG INSTALL_V8JS=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN if [ ${INSTALL_V8JS} = true ]; then \
|
||||
# Install the php V8JS extension
|
||||
add-apt-repository -y ppa:pinepain/libv8-archived \
|
||||
&& apt-get update -yqq \
|
||||
&& apt-get install -y php${PHP_VERSION}-xml php${PHP_VERSION}-dev php-pear libv8-5.4 \
|
||||
&& apt-get install -y php${LARADOCK_PHP_VERSION}-xml php${LARADOCK_PHP_VERSION}-dev php-pear libv8-5.4 \
|
||||
&& pecl install v8js \
|
||||
&& echo "extension=v8js.so" >> /etc/php/${PHP_VERSION}/cli/php.ini \
|
||||
&& echo "extension=v8js.so" >> /etc/php/${LARADOCK_PHP_VERSION}/cli/php.ini \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -626,7 +673,6 @@ RUN if [ ${INSTALL_LINUXBREW} = true ]; then \
|
||||
###########################################################################
|
||||
|
||||
ARG INSTALL_MSSQL=false
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
if [ $(php -r "echo PHP_MAJOR_VERSION;") = "5" ]; then \
|
||||
@ -641,25 +687,14 @@ RUN set -eux; if [ ${INSTALL_MSSQL} = true ]; then \
|
||||
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
|
||||
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
|
||||
apt-get update -yqq && \
|
||||
ACCEPT_EULA=Y apt-get install -yqq msodbcsql=13.0.1.0-1 mssql-tools=14.0.2.0-1 && \
|
||||
apt-get install -yqq unixodbc-dev-utf16 && \
|
||||
ln -sfn /opt/mssql-tools/bin/sqlcmd-13.0.1.0 /usr/bin/sqlcmd && \
|
||||
ln -sfn /opt/mssql-tools/bin/bcp-13.0.1.0 /usr/bin/bcp && \
|
||||
ACCEPT_EULA=Y apt-get install -yqq \
|
||||
unixodbc \
|
||||
unixodbc-dev \
|
||||
libgss3 \
|
||||
odbcinst \
|
||||
msodbcsql \
|
||||
locales && \
|
||||
ACCEPT_EULA=Y apt-get install -y msodbcsql17 mssql-tools unixodbc unixodbc-dev libgss3 odbcinst locales && \
|
||||
ln -sfn /opt/mssql-tools/bin/sqlcmd /usr/bin/sqlcmd && \
|
||||
ln -sfn /opt/mssql-tools/bin/bcp /usr/bin/bcp && \
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||
locale-gen && \
|
||||
pecl install sqlsrv-4.3.0 pdo_sqlsrv-4.3.0 && \
|
||||
apt-get install -y locales && \
|
||||
echo "en_US.UTF-8 UTF-8" > /etc/locale.gen && \
|
||||
locale-gen && \
|
||||
echo "extension=sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
|
||||
echo "extension=pdo_sqlsrv.so" > /etc/php/${PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
|
||||
pecl install sqlsrv pdo_sqlsrv && \
|
||||
echo "extension=sqlsrv.so" > /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-sqlsrv.ini && \
|
||||
echo "extension=pdo_sqlsrv.so" > /etc/php/${LARADOCK_PHP_VERSION}/cli/conf.d/20-pdo_sqlsrv.ini \
|
||||
&& php -m | grep -q 'sqlsrv' \
|
||||
&& php -m | grep -q 'pdo_sqlsrv' \
|
||||
;fi \
|
||||
@ -766,7 +801,11 @@ ARG INSTALL_PG_CLIENT=false
|
||||
|
||||
RUN if [ ${INSTALL_PG_CLIENT} = true ]; then \
|
||||
# Install the pgsql client
|
||||
apt-get -y install postgresql-client \
|
||||
apt-get install wget \
|
||||
&& add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" \
|
||||
&& wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - \
|
||||
&& apt-get update \
|
||||
&& apt-get -y install postgresql-client-10 \
|
||||
;fi
|
||||
|
||||
###########################################################################
|
||||
@ -808,9 +847,7 @@ RUN if [ ${INSTALL_DUSK_DEPS} = true ]; then \
|
||||
# Check PHP version:
|
||||
###########################################################################
|
||||
|
||||
ARG PHP_VERSION=${PHP_VERSION}
|
||||
|
||||
RUN php -v | head -n 1 | grep -q "PHP ${PHP_VERSION}."
|
||||
RUN php -v | head -n 1 | grep -q "PHP ${LARADOCK_PHP_VERSION}."
|
||||
|
||||
#
|
||||
#--------------------------------------------------------------------------
|
||||
|
@ -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.
|
||||
|
@ -1 +1 @@
|
||||
* * * * * laradock php /var/www/artisan schedule:run >> /dev/null 2>&1
|
||||
* * * * * laradock /usr/bin/php /var/www/artisan schedule:run >> /dev/null 2>&1
|
||||
|
Reference in New Issue
Block a user