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

  1. 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
  1. 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

  2. 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
  1. Jalankan docker stack deploy -c docker-stack.yml uang-kas

Silahkan clone scriptnya di sini, script akan saya update sewaktu-waktu