@navystack 네 다행히 별 문제 아니여서, 잘 해결하였습니다!
상세히 설명해주셔서 감사합니다. IDE는 그럼 직접 인스턴스에 remote로 연결하고 도커 내에 마운트한 경로를 불러와서 작업하시는거군요? 한번 netvpc도 살펴보겠습니다.
@navystack 네 다행히 별 문제 아니여서, 잘 해결하였습니다!
상세히 설명해주셔서 감사합니다. IDE는 그럼 직접 인스턴스에 remote로 연결하고 도커 내에 마운트한 경로를 불러와서 작업하시는거군요? 한번 netvpc도 살펴보겠습니다.
엇.. cloudflare dns 쪽에서 proxy status 를 dns only로 변경하니 페이지가 잘 들어가지네요..!!! 잘 해결 되었습니다. 답변 주셔서 감사합니다, 괜히 번거롭게 했네요..
혹시 위 문제와 별개로, 요런식으로 docker-compose로 CMS 띄워서 개발 할때는, 개발 사이클이 어떤식으로 진행되는지 여쭤봐도 될까요? (기초적인 기능 개발이라던가, 나중에 rhymix 자체 코드를 수정해서 쓸때는 어떤식으로 해야하는지 아직 처음이라 잘 몰라서 질문 드립니다.) 또, 질문이 비슷한데 @navystack 님은 cms 사이트 개발 하실 때 어떤 방식으로 배포 하고 관리 하시는지 궁금합니다
안녕하세요, 우선 빠르게 답장해주셔서 감사합니다!
앗 433포트는 제가 질문 작성중에 오타로 입력 한 것 같습니다.. 방화벽 셋팅은 위와 같습니다.
아래는 제 docker-compose.yaml 내용입니다.
version: '3.9'
services:
rhymix-db:
image: mysql:8.0
restart: unless-stopped
logging:
options:
max-size: '10m'
environment:
MYSQL_USER: rhymix
MYSQL_PASSWORD: *********
MYSQL_DATABASE: rhymix
MYSQL_ROOT_PASSWORD: *********
volumes:
- rhymix-db:/var/lib/mysql
networks:
- traefik-network
rhymix:
image: navystack/rhymix:latest
restart: unless-stopped
depends_on:
- rhymix-db
logging:
options:
max-size: '10m'
labels:
- 'traefik.enable=true'
- 'traefik.docker.network=traefik-network'
- 'traefik.http.services.rhymix-srv.loadbalancer.server.port=80'
- 'traefik.http.services.rhymix-srv.loadbalancer.passhostheader=true'
- 'traefik.http.middlewares.www-redir.redirectregex.regex=^https://www.(.*)'
- 'traefik.http.middlewares.www-redir.redirectregex.replacement=https://$${1}'
- 'traefik.http.middlewares.www-redir.redirectregex.permanent=true'
- 'traefik.http.middlewares.compresstraefik.compress=true'
- 'traefik.http.routers.rhymix-rt.rule=Host(`mydomain.com`) || Host(`www.mydomain.com`)' ## fixed
- 'traefik.http.routers.rhymix-rt.entrypoints=websecure'
- 'traefik.http.routers.rhymix-rt.service=rhymix-srv'
- 'traefik.http.routers.rhymix-rt.middlewares=www-redir,compresstraefik'
- 'traefik.http.routers.rhymix-rt.tls=true'
- 'traefik.http.routers.rhymix-rt.tls.certresolver=letsencrypt' ## fixed
- 'traefik.http.routers.rhymix-rt.tls.domains[0].main=mydomain.com' ## fixed
- 'traefik.http.routers.rhymix-rt.tls.domains[0].sans=*.mydomain.com' ## fixed
volumes:
- rhymix-data:/var/www/html
networks:
- traefik-network
traefik:
image: traefik:v2.10
restart: unless-stopped
logging:
options:
max-size: '10m'
command:
- '--log.level=DEBUG'
- '--accesslog=true'
- '--api.dashboard=true'
- '--ping=true'
- '--ping.entrypoint=ping'
- '--entryPoints.ping.address=:8082'
- '--entryPoints.web.address=:80'
- '--entryPoints.websecure.address=:443'
- '--entryPoints.web.http.redirections.entryPoint.to=websecure'
- '--entrypoints.web.http.redirections.entryPoint.scheme=https'
- '--entrypoints.web.http.redirections.entrypoint.permanent=true'
- '--providers.docker=true'
- '--providers.docker.watch=true'
- '--providers.docker.network=traefik-network'
- '--providers.docker.endpoint=unix:///var/run/docker.sock'
- '--providers.docker.exposedByDefault=false'
# (commented out due to dns challenge usage) Let's Encrypt ACME 설정
# - '--certificatesresolvers.letsencrypt.acme.tlschallenge=true' # DNS Challenge 사용시 주석처리 하고 밑에 Let's Encrypt ACME DNS Challenge (CLoudflare) 주석 해제 && # environment: # CF_DNS_API_TOKEN: 주석 해제
- '--certificatesresolvers.letsencrypt.acme.keyType=EC256'
- '--certificatesresolvers.letsencrypt.acme.email=webmaster@mydomain.com' # fixed
- '--certificatesresolvers.letsencrypt.acme.storage=/etc/traefik/acme/acme.json'
# Let's Encrypt ACME DNS Challenge (CLoudflare)
- "--certificatesResolvers.letsencrypt.acme.dnsChallenge=true"
- "--certificatesResolvers.letsencrypt.acme.dnsChallenge.provider=cloudflare"
- "--certificatesResolvers.letsencrypt.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53"
- "--certificatesresolvers.letsencrypt.acme.dnschallenge.delaybeforecheck=0"
# Prometheus 메트릭 설정
- '--metrics.prometheus=true'
- '--metrics.prometheus.buckets=0.1,0.3,1.2,5.0'
- '--metrics.prometheus.addServicesLabels=true'
- '--metrics.prometheus.addrouterslabels=true'
- '--metrics.prometheus.addEntryPointsLabels=true'
# 버전 확인 및 익명 사용 통계 설정
- '--global.checkNewVersion=true'
- '--global.sendAnonymousUsage=false'
# HTTP3 설정
- '--experimental.http3=true'
- '--entrypoints.websecure.http3'
- '--entrypoints.websecure.http3.advertisedport=443'
environment:
CF_DNS_API_TOKEN: ***********************************
healthcheck:
test: ['CMD', 'wget', 'http://localhost:8082/ping', '--spider']
interval: 10s
timeout: 2s
retries: 3
start_period: 5s
labels:
- 'traefik.enable=true'
- 'traefik.http.services.dashboard.loadbalancer.server.port=8080'
- 'traefik.http.services.dashboard.loadbalancer.passhostheader=true'
- 'traefik.http.routers.dashboard.rule=Host(`web.mydomain.com`)' ## fixed
- 'traefik.http.routers.dashboard.entrypoints=websecure'
- 'traefik.http.routers.dashboard.service=api@internal'
- 'traefik.http.routers.dashboard.tls=true'
- 'traefik.http.routers.dashboard.tls.certresolver=letsencrypt'
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik-certificates:/etc/traefik/acme
networks:
- traefik-network
ports:
- target: 80
published: 80
mode: host
- target: 443
published: 443
mode: host
protocol: tcp
- target: 443
published: 443
mode: host
protocol: udp
- target: 8080
published: 8080
mode: host
protocol: tcp
volumes:
rhymix-data:
rhymix-db:
networks:
traefik-network:
external: true
혹시 대쉬보드는 8080 포트 열어준다음에 접속하면 되는걸까요?
a.b.c.d/dashboard
a.b.c.d:8080/dashboard
a.b.c.d:8080
domain 그리고 static ip 둘다 접속이 안되는 상황입니다 ㅠ
curl http://172.18.0.4/dashboard 는 lightsail instance 내에서는 응답이오네요!
아래는 docker traefik-network 관련 내용입니다.
~ ❯ docker network inspect traefik-network at 04:02:32
[
{
"Name": "traefik-network",
"Id": "7a6813a33aced9b56000fbf3fb6c4f326191a66bda9540aacf637216312dded8",
"Created": "2024-10-27T12:46:50.390286474Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"80f4495e4e8c13d57185681af21e522c66a79488a637a111bef80a8843a5f0c3": {
"Name": "rhymix-traefik-1",
"EndpointID": "339ea1a26a2c1ca9a9eab3a67abe7450e9097c8af285eea0d8c426da8fe
b72e2",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
},
"98fcb5824f55e6b21b170ee5621419fe511317d63ece5a20130bfdb516cde325": {
"Name": "rhymix-rhymix-1",
"EndpointID": "dab8fd45539d57d24a4c892adbafcfe6cacf6ffcac8c6328e063b5eb66f
06e92",
"MacAddress": "02:42:ac:12:00:04",
"IPv4Address": "172.18.0.4/16",
"IPv6Address": ""
},
"db624142c7a32847f14e20617e61174821b4329be337c2e1f82a51c7086274b1": {
"Name": "rhymix-rhymix-db-1",
"EndpointID": "a71e0d718ee206b5c2d41bd5e77c09e3c0fa5576cca31f1770e7e01cef9
e9fae",
"MacAddress": "02:42:ac:12:00:03",
"IPv4Address": "172.18.0.3/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
메뉴얼에 나와있는데로 진행 후, docker compose up -d 한 후에, 다 정상적으로 실행되는 것은 확인 하였는데, 도커 rhymix-rhymix-1 쪽 주소로 curl http://172.18.0.4 할때는 정상적인 rhymix쪽 응답이 나오는데, ip나 domain으로 들어가면 404 page not found가 뜹니다
ㅠ 혹시 제가 놓친게 있을까요? 뭔가 traefik 설정이 잘못 된 것 같은데, 처음 해보다보니 잘안되서 문의드립니다.