Skip to content

Commit 5edf3f3

Browse files
ahkuibestlong
authored andcommitted
Update document and fix some container bug (laradock#1785)
1 parent f6c5aa1 commit 5edf3f3

8 files changed

Lines changed: 77 additions & 35 deletions

File tree

docker-compose.yml

Lines changed: 32 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,14 @@ services:
386386
- POSTGRES_DB=${POSTGRES_DB}
387387
- POSTGRES_USER=${POSTGRES_USER}
388388
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
389+
- GITLAB_POSTGRES_INIT=${GITLAB_POSTGRES_INIT}
390+
- GITLAB_POSTGRES_USER=${GITLAB_POSTGRES_USER}
391+
- GITLAB_POSTGRES_PASSWORD=${GITLAB_POSTGRES_PASSWORD}
392+
- GITLAB_POSTGRES_DB=${GITLAB_POSTGRES_DB}
393+
- JUPYTERHUB_POSTGRES_INIT=${JUPYTERHUB_POSTGRES_INIT}
394+
- JUPYTERHUB_POSTGRES_USER=${JUPYTERHUB_POSTGRES_USER}
395+
- JUPYTERHUB_POSTGRES_PASSWORD=${JUPYTERHUB_POSTGRES_PASSWORD}
396+
- JUPYTERHUB_POSTGRES_DB=${JUPYTERHUB_POSTGRES_DB}
389397
networks:
390398
- backend
391399

@@ -925,18 +933,19 @@ services:
925933
context: ./gitlab
926934
environment:
927935
GITLAB_OMNIBUS_CONFIG: |
928-
external_url '${GITLAB_DOMAIN_NAME}'
929-
redis['enable'] = false
930-
nginx['listen_https'] = false
931-
nginx['listen_port'] = 80
932-
postgresql['enable'] = false
933-
gitlab_rails['trusted_proxies'] = ['caddy','nginx','apache2']
934-
gitlab_rails['redis_host'] = 'redis'
936+
external_url '${GITLAB_DOMAIN_NAME}'
937+
redis['enable'] = false
938+
nginx['listen_https'] = false
939+
nginx['listen_port'] = 80
940+
nginx['custom_gitlab_server_config'] = "set_real_ip_from 172.0.0.0/8;\nreal_ip_header X-Real-IP;\nreal_ip_recursive on;"
941+
postgresql['enable'] = false
942+
gitlab_rails['trusted_proxies'] = ['caddy','nginx','apache2']
943+
gitlab_rails['redis_host'] = 'redis'
935944
gitlab_rails['redis_database'] = 8
936-
gitlab_rails['db_host'] = 'postgres'
937-
gitlab_rails['db_username'] = 'laradock_gitlab'
938-
gitlab_rails['db_password'] = 'laradock_gitlab'
939-
gitlab_rails['db_database'] = 'laradock_gitlab'
945+
gitlab_rails['db_host'] = '${GITLAB_POSTGRES_HOST}'
946+
gitlab_rails['db_username'] = '${GITLAB_POSTGRES_USER}'
947+
gitlab_rails['db_password'] = '${GITLAB_POSTGRES_PASSWORD}'
948+
gitlab_rails['db_database'] = '${GITLAB_POSTGRES_DB}'
940949
gitlab_rails['initial_root_password'] = '${GITLAB_ROOT_PASSWORD}'
941950
gitlab_rails['gitlab_shell_ssh_port'] = ${GITLAB_HOST_SSH_PORT}
942951
volumes:
@@ -955,20 +964,22 @@ services:
955964
gitlab-runner:
956965
image: gitlab/gitlab-runner:latest
957966
environment:
958-
- CI_SERVER_URL=${GITLAB_DOMAIN_NAME}
967+
- CI_SERVER_URL=${GITLAB_CI_SERVER_URL}
968+
- REGISTRATION_TOKEN=${GITLAB_RUNNER_REGISTRATION_TOKEN}
969+
- RUNNER_NAME=${COMPOSE_PROJECT_NAME}-runner
970+
- REGISTER_NON_INTERACTIVE=${GITLAB_REGISTER_NON_INTERACTIVE}
971+
- RUNNER_EXECUTOR=shell
959972
volumes:
960973
- ${DATA_PATH_HOST}/gitlab/runner:/etc/gitlab-runner
961974
- /var/run/docker.sock:/var/run/docker.sock:rw
962-
restart: always
963-
975+
964976
### JupyterHub #########################################
965977
jupyterhub:
966978
build:
967979
context: ./jupyterhub
968980
depends_on:
969981
- postgres
970982
- jupyterhub-user
971-
restart: always
972983
volumes:
973984
- /var/run/docker.sock:/var/run/docker.sock:rw
974985
- ${DATA_PATH_HOST}/jupyterhub/:/data
@@ -989,7 +1000,8 @@ services:
9891000
- JUPYTERHUB_OAUTH_CALLBACK_URL=${JUPYTERHUB_OAUTH_CALLBACK_URL}
9901001
- JUPYTERHUB_OAUTH_CLIENT_ID=${JUPYTERHUB_OAUTH_CLIENT_ID}
9911002
- JUPYTERHUB_OAUTH_CLIENT_SECRET=${JUPYTERHUB_OAUTH_CLIENT_SECRET}
992-
- JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE=${JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE}
1003+
- JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE=${COMPOSE_PROJECT_NAME}_jupyterhub-user
1004+
- JUPYTERHUB_ENABLE_NVIDIA=${JUPYTERHUB_ENABLE_NVIDIA}
9931005
jupyterhub-user:
9941006
build:
9951007
context: ./jupyterhub
@@ -1039,9 +1051,10 @@ services:
10391051
networks:
10401052
- backend
10411053

1042-
### PHPRedisAdmin ################################################
1043-
phpredisadmin:
1044-
image: erikdubbelboer/phpredisadmin:latest
1054+
### REDISWEBUI ################################################
1055+
redis-webui:
1056+
build:
1057+
context: ./redis-webui
10451058
environment:
10461059
- ADMIN_USER=${REDIS_WEBUI_USERNAME}
10471060
- ADMIN_PASS=${REDIS_WEBUI_PASSWORD}
@@ -1058,7 +1071,6 @@ services:
10581071
mongo-webui:
10591072
build:
10601073
context: ./mongo-webui
1061-
restart: always
10621074
environment:
10631075
- ROOT_URL=${MONGO_WEBUI_ROOT_URL}
10641076
- MONGO_URL=${MONGO_WEBUI_MONGO_URL}

env-example

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -500,14 +500,25 @@ SOLR_DATAIMPORTHANDLER_MYSQL=false
500500
SOLR_DATAIMPORTHANDLER_MSSQL=false
501501

502502
### GITLAB ###############################################
503+
GITLAB_POSTGRES_INIT=true
503504
GITLAB_HOST_HTTP_PORT=8989
504505
GITLAB_HOST_HTTPS_PORT=9898
505506
GITLAB_HOST_SSH_PORT=2289
506507
GITLAB_DOMAIN_NAME=http://localhost
507508
GITLAB_ROOT_PASSWORD=laradock
508509
GITLAB_HOST_LOG_PATH=./logs/gitlab
510+
GITLAB_POSTGRES_HOST=postgres
511+
GITLAB_POSTGRES_USER=laradock_gitlab
512+
GITLAB_POSTGRES_PASSWORD=laradock_gitlab
513+
GITLAB_POSTGRES_DB=laradock_gitlab
514+
515+
### GITLAB-RUNNER ###############################################
516+
GITLAB_CI_SERVER_URL=http://localhost:8989
517+
GITLAB_RUNNER_REGISTRATION_TOKEN=<my-registration-token>
518+
GITLAB_REGISTER_NON_INTERACTIVE=true
509519

510520
### JUPYTERHUB ###############################################
521+
JUPYTERHUB_POSTGRES_INIT=true
511522
JUPYTERHUB_POSTGRES_HOST=postgres
512523
JUPYTERHUB_POSTGRES_USER=laradock_jupyterhub
513524
JUPYTERHUB_POSTGRES_PASSWORD=laradock_jupyterhub
@@ -516,18 +527,18 @@ JUPYTERHUB_PORT=9991
516527
JUPYTERHUB_OAUTH_CALLBACK_URL=http://laradock:9991/hub/oauth_callback
517528
JUPYTERHUB_OAUTH_CLIENT_ID={GITHUB_CLIENT_ID}
518529
JUPYTERHUB_OAUTH_CLIENT_SECRET={GITHUB_CLIENT_SECRET}
519-
JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE=laradock_jupyterhub-user
520530
JUPYTERHUB_CUSTOM_CONFIG=./jupyterhub/jupyterhub_config.py
521531
JUPYTERHUB_USER_DATA=/jupyterhub
522532
JUPYTERHUB_USER_LIST=./jupyterhub/userlist
533+
JUPYTERHUB_ENABLE_NVIDIA=false
523534

524535
### IPYTHON ##################################################
525536
LARADOCK_IPYTHON_CONTROLLER_IP=127.0.0.1
526537

527538
### NETDATA ###############################################
528539
NETDATA_PORT=19999
529540

530-
### PHPREDISADMIN #########################################
541+
### REDISWEBUI #########################################
531542
REDIS_WEBUI_USERNAME=laradock
532543
REDIS_WEBUI_PASSWORD=laradock
533544
REDIS_WEBUI_CONNECT_HOST=redis

ide-theia/Dockerfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ LABEL maintainer="ahkui <ahkui@outlook.com>"
55
USER root
66

77
RUN echo 'fs.inotify.max_user_watches=524288' >> /etc/sysctl.conf
8+
9+
USER theia

jupyterhub/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ ENV JUPYTERHUB_OAUTH_CALLBACK_URL ${JUPYTERHUB_OAUTH_CALLBACK_URL}
1010
ENV JUPYTERHUB_OAUTH_CLIENT_ID ${JUPYTERHUB_OAUTH_CLIENT_ID}
1111
ENV JUPYTERHUB_OAUTH_CLIENT_SECRET ${JUPYTERHUB_OAUTH_CLIENT_SECRET}
1212
ENV JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE ${JUPYTERHUB_LOCAL_NOTEBOOK_IMAGE}
13+
ENV JUPYTERHUB_ENABLE_NVIDIA ${JUPYTERHUB_ENABLE_NVIDIA}
1314

1415
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
1516

jupyterhub/jupyterhub_config.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66

77
c = get_config()
88

9+
# create system users that don't exist yet
10+
c.LocalAuthenticator.create_system_users = True
11+
912
def create_dir_hook(spawner):
1013
username = spawner.user.name # get the username
1114
volume_path = os.path.join('/user-data', username)
@@ -45,8 +48,12 @@ def create_dir_hook(spawner):
4548
c.DockerSpawner.use_internal_ip = True
4649
c.DockerSpawner.network_name = network_name
4750

51+
enable_nvidia = os.environ.get('JUPYTERHUB_ENABLE_NVIDIA','false')
4852
# Pass the network name as argument to spawned containers
49-
c.DockerSpawner.extra_host_config = { 'network_mode': network_name, 'runtime': 'nvidia' }
53+
c.DockerSpawner.extra_host_config = { 'network_mode': network_name }
54+
if 'true' == enable_nvidia:
55+
c.DockerSpawner.extra_host_config = { 'network_mode': network_name, 'runtime': 'nvidia' }
56+
pass
5057
# c.DockerSpawner.extra_host_config = { 'network_mode': network_name, "devices":["/dev/nvidiactl","/dev/nvidia-uvm","/dev/nvidia0"] }
5158
# Explicitly set notebook directory because we'll be mounting a host volume to
5259
# it. Most jupyter/docker-stacks *-notebook images run the Notebook server as

postgres/docker-entrypoint-initdb.d/init_gitlab_db.sh

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,12 @@
3333
# EOSQL
3434
#
3535
### default database and user for gitlab ##############################################
36-
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
37-
CREATE USER laradock_gitlab WITH PASSWORD 'laradock_gitlab';
38-
CREATE DATABASE laradock_gitlab;
39-
GRANT ALL PRIVILEGES ON DATABASE laradock_gitlab TO laradock_gitlab;
40-
ALTER ROLE laradock_gitlab CREATEROLE SUPERUSER;
41-
EOSQL
36+
if [ "$GITLAB_POSTGRES_INIT" == 'true' ]; then
37+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
38+
CREATE USER $GITLAB_POSTGRES_USER WITH PASSWORD '$GITLAB_POSTGRES_PASSWORD';
39+
CREATE DATABASE $GITLAB_POSTGRES_DB;
40+
GRANT ALL PRIVILEGES ON DATABASE $GITLAB_POSTGRES_DB TO $GITLAB_POSTGRES_USER;
41+
ALTER ROLE $GITLAB_POSTGRES_USER CREATEROLE SUPERUSER;
42+
EOSQL
43+
echo
44+
fi

postgres/docker-entrypoint-initdb.d/init_jupyterhub_db.sh

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,12 @@
3333
# EOSQL
3434
#
3535
### default database and user for jupyterhub ##############################################
36-
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
37-
CREATE USER laradock_jupyterhub WITH PASSWORD 'laradock_jupyterhub';
38-
CREATE DATABASE laradock_jupyterhub;
39-
GRANT ALL PRIVILEGES ON DATABASE laradock_jupyterhub TO laradock_jupyterhub;
40-
ALTER ROLE laradock_jupyterhub CREATEROLE SUPERUSER;
41-
EOSQL
36+
if [ $JUPYTERHUB_POSTGRES_INIT == 'true' ]; then
37+
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
38+
CREATE USER $JUPYTERHUB_POSTGRES_USER WITH PASSWORD '$JUPYTERHUB_POSTGRES_PASSWORD';
39+
CREATE DATABASE $JUPYTERHUB_POSTGRES_DB;
40+
GRANT ALL PRIVILEGES ON DATABASE $JUPYTERHUB_POSTGRES_DB TO $JUPYTERHUB_POSTGRES_USER;
41+
ALTER ROLE $JUPYTERHUB_POSTGRES_USER CREATEROLE SUPERUSER;
42+
EOSQL
43+
echo
44+
fi

redis-webui/Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
FROM erikdubbelboer/phpredisadmin
2+
3+
LABEL maintainer="ahkui <ahkui@outlook.com>"

0 commit comments

Comments
 (0)