Aplikasi native PHP di sini adalah aplikasi uang kas di post saya sebelumnya. Sebelumnya, silahkan setup dockerswarm dengan traefik, saya mengikut tutorial di dockerswarm.rocks
- Buat service mysql
docker service create --name uang-kas-mysql \
--publish 3306:3306 \
--network traefik-public \
--replicas 1 \
--mount 'type=volume,source=uang-kas-mysql-vol,destination=/var/lib/mysql' \
-e MYSQL_ROOT_PASSWORD=19second \
-e MYSQL_USER=eren \
-e MYSQL_PASSWORD=wanttorevenge \
-e MYSQL_DATABASE=uang_kas
-
Import DB yang ada di repository
docker exec -i uang-kas-mysql mysql -u root -p19second uang_kas < uang_kas.sql
. Biasanya nama container nya random nanti, contoh uang-kas-mysql.2.cmungduhd3chk4k4 -
Buat docker swarm yml,
version: '3.3'
services:
uang:
image: uang-kas-img
networks:
- traefik-public
deploy:
labels:
- traefik.enable=true
- traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public
- traefik.http.routers.uang-http.rule=Host(`test.swarm.domainanda.com`)
- traefik.http.routers.uang-http.entrypoints=http
- traefik.http.routers.uang-http.middlewares=https-redirect
- traefik.http.routers.uang-https.rule=Host(`test.swarm.domainanda.com`)
- traefik.http.routers.uang-https.entrypoints=https
- traefik.http.routers.uang-https.tls=true
- traefik.http.routers.uang-https.tls.certresolver=le
- traefik.http.services.uang.loadbalancer.server.port=8080
networks:
traefik-public:
external: true
- Jalankan
docker stack deploy -c docker-stack.yml uang-kas
Silahkan clone scriptnya di sini, script akan saya update sewaktu-waktu