iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
SideProject30

30 天學習 Docker 部署你的專案系列 第 24

DAY 24 - 在我部署的專案使用 Traefik 取得 HTTPS 協定(一)

  • 分享至 

  • xImage
  •  

我參考 官網 用 Docker 啟動 Traefik ,跟者步驟試試

在 docker-compose.yml 加上 traefik 服務

1. 先將原本的 docker-compose 停下

docker-compose down

https://ithelp.ithome.com.tw/upload/images/20231009/20151035Dedx2WBmB0.png
確認一下有沒有容器在跑

docker ps

https://ithelp.ithome.com.tw/upload/images/20231009/20151035j10kEP59eO.png

編輯 docker-compose.yml

官網上面說在 docker-compose.yml 加上 reverse-proxy 這個服務

reverse-proxy:
    # The official v2 Traefik docker image
    image: traefik:v2.10
    # Enables the web UI and tells Traefik to listen to docker
    command: --api.insecure=true --providers.docker
    ports:
      # The HTTP port
      - "80:80"
      # The Web UI (enabled by --api.insecure=true)
      - "8080:8080"
    volumes:
      # So that Traefik can listen to the Docker events
      - /var/run/docker.sock:/var/run/docker.sock

我根據上方官網的提示將 service reverse-proxy 改為 traefik ,然後重新啟動 docker-compose 一次,首先使用 vi 來編輯:

vi docker-compose.yml

現在的 docker-compose.yml 長這樣:

version: "3.9"
services:
  app:
    image: krystallll/docker_test:1.0
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: password
      POSTGRES_HOST: db
      POSTGRES_PORT: 5432
    restart: on-failure
    ports:
      - 3000:3000
  db:
    image: postgres:14-alpine
    restart: on-failure
    environment:
      POSTGRES_PASSWORD: password
  traefik:
    image: traefik:v2.10
    command: --api.insecure=true --providers.docker
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

重新啟動容器

docker-compose up --build

https://ithelp.ithome.com.tw/upload/images/20231009/20151035bGu3hrJmjF.png

去看 Traefik 的 API 原始資料

官網說可以去以下網址看 Traefik 的 API 原始資料

http://localhost:8080/api/rawdata

https://ithelp.ithome.com.tw/upload/images/20231009/201510351rFVocRMVE.png

開 EC2 8080 port

看到無法連上網站,我先盲猜是因為沒有開 8080 port,所以跟之前一樣我先去 AWS EC2 裡跟之前設定 3000 port 一樣去設定 8080 port。

一樣先去編輯 Security Groups
https://ithelp.ithome.com.tw/upload/images/20231009/20151035B3LykDtUwA.png

加上 8080 port
https://ithelp.ithome.com.tw/upload/images/20231009/20151035gGwTZdKYt4.png

重看瀏覽器 Traefik 的 API 原始資料

重新看

http://localhost:8080/api/rawdata

https://ithelp.ithome.com.tw/upload/images/20231009/20151035hVOTDT25zv.png

一樣是無法連上網站,突然靈機一動上面的網址是 http://localhost 但現在網址是 http://ec2-52-199-213-167.ap-northeast-1.compute.amazonaws.com 所以我換網址為 http://ec2-52-199-213-167.ap-northeast-1.compute.amazonaws.com:8080/api/rawdata 可以看到以下

https://ithelp.ithome.com.tw/upload/images/20231009/20151035tDV2mGvtdF.png

終於成功看到 API 原始資料,那明天我們繼續來完成使用 Traefik 取得 HTTPS 協定。


上一篇
DAY 23 - 了解 Traefik 反向代理伺服器
下一篇
DAY 25 - 在我部署的專案使用 Traefik 取得 HTTPS 協定(二)
系列文
30 天學習 Docker 部署你的專案30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言