Skip to content

Commit 8bbb194

Browse files
committed
Add docker tools for deployment
1 parent c7d3822 commit 8bbb194

36 files changed

+25534
-0
lines changed

Diff for: .env.example

+126
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# ===================================================================================== #
2+
# LIST CONTAINER SERVICES & TOOLS #
3+
# ===================================================================================== #
4+
# '########:'########:'########:::'#######:::'######::::'#####:::'########:::'#######:: #
5+
# ..... ##:: ##.....:: ##.... ##:'##.... ##:'##... ##::'##.. ##:: ##.... ##:'##.... ##: #
6+
# :::: ##::: ##::::::: ##:::: ##: ##:::: ##: ##:::..::'##:::: ##: ##:::: ##:..::::: ##: #
7+
# ::: ##:::: ######::: ########:: ##:::: ##: ##::::::: ##:::: ##: ##:::: ##::'#######:: #
8+
# :: ##::::: ##...:::: ##.. ##::: ##:::: ##: ##::::::: ##:::: ##: ##:::: ##::...... ##: #
9+
# : ##:::::: ##::::::: ##::. ##:: ##:::: ##: ##::: ##:. ##:: ##:: ##:::: ##:'##:::: ##: #
10+
# ########: ########: ##:::. ##:. #######::. ######:::. #####::: ########::. #######:: #
11+
# ........::........::..:::::..:::.......::::......:::::.....::::........::::.......::: #
12+
# ===================================================================================== #
13+
14+
# ================================================================================================
15+
# DOCKER-COMPOSE (DRIVER)
16+
# ================================================================================================
17+
# All Networks driver
18+
NETWORKS_DRIVER=bridge
19+
NETWORKS_NAME=zeroc0d3lab_net
20+
# All volumes driver
21+
VOLUMES_DRIVER=local
22+
23+
# ================================================================================================
24+
# CONTAINER NAME
25+
# ================================================================================================
26+
CONTAINER_ADMINER=zeroc0d3lab_adminer
27+
CONTAINER_GITLAB_RUNNER=zeroc0d3lab_gitlab_runner
28+
CONTAINER_MARIADB=zeroc0d3lab_mariadb
29+
CONTAINER_PORTAINER=zeroc0d3lab_portainer
30+
CONTAINER_PGADMIN=zeroc0d3lab_pgadmin
31+
CONTAINER_DEPLOYMENT=zeroc0d3lab_deployment
32+
CONTAINER_UBUNTU=zeroc0d3lab_ubuntu
33+
34+
# ================================================================================================
35+
# CONTAINER IP STATIC
36+
# ================================================================================================
37+
CONTAINER_IP_ADMINER=172.125.125.3
38+
CONTAINER_IP_MARIADB=172.125.125.4
39+
CONTAINER_IP_PORTAINER=172.125.125.5
40+
CONTAINER_IP_POSTGRESQL=172.125.125.6
41+
CONTAINER_IP_PGADMIN=172.125.125.7
42+
CONTAINER_IP_DEPLOYMENT=172.125.125.8
43+
CONTAINER_IP_UBUNTU=172.125.125.90
44+
CONTAINER_IP_GITLAB_RUNER=172.125.125.99
45+
46+
# ================================================================================================
47+
# CONTAINER PORT
48+
# ================================================================================================
49+
PORT_ADMINER=5210
50+
PORT_MARIADB=3306
51+
PORT_PORTAINER=5212
52+
PORT_POSTGRESQL=5432
53+
PORT_PGADMIN=5213
54+
PORT_DEPLOYMENT=5214
55+
PORT_UBUNTU=5290
56+
PORT_GITLAB_RUNNER=5299
57+
58+
# ================================================================================================
59+
# PATH VOLUME
60+
# ================================================================================================
61+
DATA_MARIADB=/opt/data/docker/mariadb
62+
DATA_PORTAINER=/opt/data/docker/portainer
63+
DATA_POSTGRESQL=/opt/data/docker/postgresql
64+
DATA_PGADMIN=/opt/data/docker/pgadmin
65+
DATA_DEPLOYMENT=/opt/data/docker/ruby
66+
PATH_SSH=~/.ssh
67+
68+
# ================================================================================================
69+
# PATH SESSION
70+
# ================================================================================================
71+
SESSION_ADMINER=/opt/data/docker/session/adminer
72+
SESSION_PGADMIN=/opt/data/docker/session/pgadmin
73+
74+
# ================================================================================================
75+
# DEFAULT CREDENTIAL
76+
# ================================================================================================
77+
78+
# ================================================================================================
79+
# VERSION
80+
# ================================================================================================
81+
ALPINE_VERSION=3.12
82+
ADMINER_VERSION=4.7.7
83+
MARIADB_VERSION=10.4.13
84+
PORTAINER_VERSION=1.24.1
85+
POSTGRESQL_VERSION=10.13
86+
PGADMIN_VERSION=4.22
87+
RUBY_VERSION=2.7.1
88+
89+
# ================================================================================================
90+
# CONTAINER: ADMINER
91+
# ================================================================================================
92+
INSTALL_MSSQL=false
93+
94+
# ================================================================================================
95+
# CONTAINER: MARIADB
96+
# ================================================================================================
97+
MARIADB_ROOT_PASSWORD=password
98+
MARIADB_ROOT_HOST=172.125.125.4
99+
MARIADB_HOST=172.125.125.4
100+
MARIADB_DATABASE=zeroc0d3lab_db
101+
MARIADB_USER=admin
102+
MARIADB_PASSWORD=password
103+
104+
# ================================================================================================
105+
# CONTAINER: PGADMIN
106+
# ================================================================================================
107+
PGADMIN_DEFAULT_EMAIL=[email protected]
108+
PGADMIN_DEFAULT_PASSWORD=password
109+
110+
# ================================================================================================
111+
# CONTAINER: POSTGRESQL
112+
# ================================================================================================
113+
POSTGRES_ROOT_HOST=172.125.125.6
114+
POSTGRES_DATABASE=zeroc0d3lab_db
115+
POSTGRES_USER=admin
116+
POSTGRES_PASSWORD=password
117+
118+
# ================================================================================================
119+
# CONTAINER: PORTAINER
120+
# ================================================================================================
121+
PORTAINER_HOME=/var/lib/portainer
122+
123+
# ================================================================================================
124+
# CONTAINER: GITLAB_RUNNER
125+
# ================================================================================================
126+
GITLAB_RUNNER_CONFIG=/opt/data/docker/gitlab-runner/config

Diff for: compose/app-compose-deploy.yml

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
version: '3.6'
2+
3+
#================================================================================================
4+
# NETWORK SETUP
5+
#================================================================================================
6+
networks:
7+
zeroc0d3lab_net:
8+
name: ${NETWORKS_NAME:-zeroc0d3lab_net}
9+
driver: ${NETWORKS_DRIVER:-bridge}
10+
ipam:
11+
config:
12+
- subnet: 172.125.125.0/16
13+
14+
#================================================================================================
15+
# VOLUME SETUP
16+
#================================================================================================
17+
volumes:
18+
deploy:
19+
driver: ${VOLUMES_DRIVER:-local}
20+
21+
services:
22+
#================================================================================================
23+
# UBUNTU - DEPLOY
24+
#================================================================================================
25+
deploy:
26+
# image: ubuntu:${UBUNTU_VERSION:-20.04}
27+
build:
28+
context: ./docker/ubuntu
29+
dockerfile: Dockerfile-20.04
30+
container_name: ${CONTAINER_DEPLOYMENT:-zeroc0d3lab_deploy}
31+
restart: unless-stopped
32+
ports:
33+
- "${PORT_DEPLOYMENT:-5291}:22"
34+
volumes:
35+
- /etc/localtime:/etc/localtime:ro
36+
- ./keys:/root/.ssh
37+
- ./deploy:/root/deploy
38+
environment:
39+
- TZ="Asia/Jakarta"
40+
- UBUNTU_VERSION=${UBUNTU_VERSION:-20.04}
41+
privileged: true
42+
tty: true
43+
networks:
44+
zeroc0d3lab_net:
45+
ipv4_address: ${CONTAINER_IP_DEPLOYMENT:-172.125.125.8}

Diff for: compose/app-compose.yml

+181
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
version: '3.6'
2+
3+
#================================================================================================
4+
# NETWORK SETUP
5+
#================================================================================================
6+
networks:
7+
zeroc0d3lab_net:
8+
name: ${NETWORKS_NAME:-zeroc0d3lab_net}
9+
driver: ${NETWORKS_DRIVER:-bridge}
10+
ipam:
11+
config:
12+
- subnet: 172.125.125.0/16
13+
14+
#================================================================================================
15+
# VOLUME SETUP
16+
#================================================================================================
17+
volumes:
18+
adminer:
19+
driver: ${VOLUMES_DRIVER:-local}
20+
mariadb:
21+
driver: ${VOLUMES_DRIVER:-local}
22+
pgadmin:
23+
driver: ${VOLUMES_DRIVER:-local}
24+
portainer:
25+
driver: ${VOLUMES_DRIVER:-local}
26+
postgresql:
27+
driver: ${VOLUMES_DRIVER:-local}
28+
ubuntu:
29+
driver: ${VOLUMES_DRIVER:-local}
30+
31+
services:
32+
#================================================================================================
33+
# ADMINER
34+
#================================================================================================
35+
adminer:
36+
image: dockerframework/adminer:${ADMINER_VERSION:-4.7.7}
37+
container_name: ${CONTAINER_ADMINER:-zeroc0d3lab_adminer}
38+
restart: unless-stopped
39+
ports:
40+
- "${PORT_ADMINER:-5210}:8080"
41+
volumes:
42+
- /etc/localtime:/etc/localtime:ro
43+
- ${SESSION_ADMINER:-/opt/data/docker/session/adminer}:/sessions
44+
environment:
45+
- TZ="Asia/Jakarta"
46+
- ADMINER_VERSION=${ADMINER_VERSION:-4.7.7}
47+
- INSTALL_MSSQL=${INSTALL_MSSQL:-false}
48+
privileged: true
49+
networks:
50+
zeroc0d3lab_net:
51+
ipv4_address: ${CONTAINER_IP_ADMINER:-172.125.125.3}
52+
53+
#================================================================================================
54+
# MARIADB
55+
#================================================================================================
56+
mariadb:
57+
#image: yobasystems/alpine-mariadb:${MARIADB_VERSION}
58+
build:
59+
context: ./docker/mariadb
60+
dockerfile: Dockerfile
61+
container_name: ${CONTAINER_MARIADB:-zeroc0d3lab_mariadb}
62+
restart: always
63+
ports:
64+
- "${PORT_MARIADB:-3306}:3306"
65+
volumes:
66+
- /var/run/docker.sock:/var/run/docker.sock
67+
- ${DATA_MARIADB:-/opt/data/docker/mariadb}:/var/lib/mysql
68+
#- ./docker/mariadb/rootfs/etc/my.cnf:/etc/my.cnf
69+
#- ./docker/mariadb/rootfs/etc/my.cnf.d/mariadb-server.cnf:/etc/my.cnf.d/mariadb-server.cnf
70+
#- ./config/mariadb/run-mysqld-mac.sh:/run-mysqld.sh
71+
environment:
72+
- ENV=local
73+
- TZ="Asia/Jakarta"
74+
- MYSQL_PROFILE=my-medium
75+
- MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
76+
- MYSQL_ROOT_HOST=${MARIADB_ROOT_HOST}
77+
- MYSQL_HOST=${MARIADB_HOST}
78+
- MYSQL_DATABASE=${MARIADB_DATABASE}
79+
- MYSQL_USER=${MARIADB_USER}
80+
- MYSQL_PASSWORD=${MARIADB_PASSWORD}
81+
#entrypoint: /run-mysqld.sh
82+
privileged: true
83+
tty: true
84+
networks:
85+
zeroc0d3lab_net:
86+
ipv4_address: ${CONTAINER_IP_MARIADB:-172.125.125.4}
87+
88+
#================================================================================================
89+
# PORTAINER
90+
#================================================================================================
91+
portainer:
92+
image: dockerframework/portainer:${PORTAINER_VERSION:-1.24.1}
93+
container_name: ${CONTAINER_PORTAINER:-zeroc0d3lab_portainer}
94+
restart: unless-stopped
95+
ports:
96+
- "${PORT_PORTAINER:-5212}:9000"
97+
volumes:
98+
- /var/run/docker.sock:/var/run/docker.sock
99+
- ${DATA_PORTAINER:-/opt/data/docker/portainer}:/data
100+
environment:
101+
- PORTAINER_TEMPLATE=generic
102+
- PORTAINER_VERSION=${PORTAINER_VERSION:-1.24.1}
103+
privileged: true
104+
networks:
105+
zeroc0d3lab_net:
106+
ipv4_address: ${CONTAINER_IP_PORTAINER:-172.125.125.5}
107+
108+
#================================================================================================
109+
# POSTGRESQL
110+
#================================================================================================
111+
postgresql:
112+
image: dockerframework/postgresql:${POSTGRESQL_VERSION}
113+
container_name: ${CONTAINER_POSTGRESQL:-zeroc0d3lab_postgresql}
114+
restart: always
115+
ports:
116+
- "${PORT_POSTGRESQL:-5432}:5432"
117+
volumes:
118+
- /var/run/docker.sock:/var/run/docker.sock
119+
- ${DATA_POSTGRESQL:-/opt/data/docker/postgresql}:/var/lib/postgresql
120+
environment:
121+
- TZ="Asia/Jakarta"
122+
- POSTGRES_VERSION=${POSTGRESQL_VERSION}
123+
- POSTGRES_ROOT_HOST=${POSTGRES_ROOT_HOST}
124+
- POSTGRES_DATABASE=${POSTGRES_DATABASE}
125+
- POSTGRES_USER=${POSTGRES_USER}
126+
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
127+
privileged: true
128+
tty: true
129+
networks:
130+
zeroc0d3lab_net:
131+
ipv4_address: ${CONTAINER_IP_POSTGRESQL:-172.125.125.6}
132+
133+
#================================================================================================
134+
# PGADMIN
135+
#================================================================================================
136+
pgadmin:
137+
image: dockerframework/pgadmin:${PGADMIN_VERSION:-4.22}
138+
container_name: ${CONTAINER_PGADMIN:-zeroc0d3lab_pgadmin}
139+
restart: unless-stopped
140+
ports:
141+
- "${PORT_PGADMIN}:80"
142+
depends_on:
143+
- postgresql
144+
volumes:
145+
- /etc/localtime:/etc/localtime:ro
146+
- ${SESSION_PGADMIN}:/sessions
147+
- ${DATA_PGADMIN}:/var/lib/pgadmin/storage
148+
environment:
149+
- TZ="Asia/Jakarta"
150+
- PGADMIN_VERSION=${PGADMIN_VERSION:-4.22}
151+
- PGADMIN_DEFAULT_EMAIL=${PGADMIN_DEFAULT_EMAIL}
152+
- PGADMIN_DEFAULT_PASSWORD=${PGADMIN_DEFAULT_PASSWORD}
153+
privileged: true
154+
networks:
155+
zeroc0d3lab_net:
156+
ipv4_address: ${CONTAINER_IP_PGADMIN:-172.125.125.7}
157+
158+
#================================================================================================
159+
# UBUNTU
160+
#================================================================================================
161+
ubuntu:
162+
# image: ubuntu:${UBUNTU_VERSION:-18.04}
163+
build:
164+
context: ./docker/ubuntu
165+
dockerfile: Dockerfile
166+
container_name: ${CONTAINER_UBUNTU:-zeroc0d3lab_ubuntu}
167+
restart: unless-stopped
168+
ports:
169+
- "${PORT_UBUNTU:-5290}:22"
170+
volumes:
171+
- /etc/localtime:/etc/localtime:ro
172+
- ./keys:/root/.ssh
173+
- ./deploy:/root/deploy
174+
environment:
175+
- TZ="Asia/Jakarta"
176+
- UBUNTU_VERSION=${UBUNTU_VERSION:-18.04}
177+
privileged: true
178+
tty: true
179+
networks:
180+
zeroc0d3lab_net:
181+
ipv4_address: ${CONTAINER_IP_UBUNTU:-172.125.125.90}

Diff for: compose/config/mariadb/init.sql

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
CREATE USER 'admin'@'%' IDENTIFIED BY 'password';
2+
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
3+
FLUSH PRIVILEGES;

Diff for: compose/config/mariadb/run-mysqld-mac.sh

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
#!/usr/bin/env bash
3+
4+
# From https://github.com/docker-library/mysql/issues/99
5+
set -e # fail on any error
6+
7+
echo '* Working around permission errors in Docker on Mac locally by making sure that "mysql" uses the same uid and gid as the host volume'
8+
TARGET_UID=$(stat -c "%u" /var/lib/mysql)
9+
echo '-- Setting mysql user to use uid '$TARGET_UID
10+
usermod -o -u $TARGET_UID mysql || true
11+
TARGET_GID=$(stat -c "%g" /var/lib/mysql)
12+
echo '-- Setting mysql group to use gid '$TARGET_GID
13+
groupmod -o -g $TARGET_GID mysql || true
14+
echo
15+
echo '* Starting MySQL'
16+
chown -R mysql:root /var/run/mysqld/
17+
/entrypoint.sh mysqld --user=mysql --console

Diff for: compose/config/ubuntu/.gitignore

Whitespace-only changes.

0 commit comments

Comments
 (0)