Quiet

Krystal 的桃花源

  • 首頁
  • 文章
  • 分類
  • 標籤
  • 連結
  • 關於

Krystal

  • 首頁
  • 文章
  • 分類
  • 標籤
  • 連結
  • 關於
Quiet主题
  • #Docker
  • #部署
  • #Domain

Docker - 要取得協定得先有正確的 Domain

Krystal
Docker 部署 AWS Domain

2023-10-11 18:27:17

文章目錄
  1. 1. 在 Godaddy 管理 DNS
    1. 1.1. 1. 點選右上角頭像到我的產品
    2. 1.2. 2. 點選這個 domain 的 DNS 按鈕
    3. 1.3. 3. 點選鉛筆編輯
    4. 1.4. 4. 類型選 A
    5. 1.5. 5. 名稱 @
    6. 1.6. 6. 資料就是填入我們在 EC2 的 Public IP address
    7. 1.7. 7. TTL 選擇自訂 600 秒(最短就是 600 秒)
  2. 2. 修改 hostname 重新 build image
  3. 3. pull 新的 image 到 EC2 inatance 上
  4. 4. 修改 EC2 inatance 的 docker-compose.yml

昨天結尾的錯誤訊息説,無法發給 ec2-52-199-213-167.ap-northeast-1.compute.amazonaws.com 這個 domain 正確的 ACME 證書。

所以推測可能我們使用的 AWS DNS 並沒有符合 Let’s Encrypt ,所以我們會需要一個正常的 Domain ,那我這邊是直接在 Godaddy 選購,我買了一個 mydocker.online 的 Domain

Godaddy Domain

購買完成後,還需要在 Godaddy 設定 AWS Public IP address

在 Godaddy 管理 DNS

以下步驟我是參考從谷歌大神那邊問來的 文章

1. 點選右上角頭像到我的產品

2. 點選這個 domain 的 DNS 按鈕

domain DNS

3. 點選鉛筆編輯

4. 類型選 A

5. 名稱 @

6. 資料就是填入我們在 EC2 的 Public IP address

7. TTL 選擇自訂 600 秒(最短就是 600 秒)

Godaddy 管理 DNS

修改 hostname 重新 build image

等待的同時我們可以先去本來的專案,將 development.rb 之前設定的

config.hosts << "ec2-52-199-213-167.ap-northeast-1.compute.amazonaws.com:3000" unless Rails.root.join("tmp/hostname.txt").exist?

改為

config.hosts << "mydocker.online" unless Rails.root.join("tmp/hostname.txt").exist?

因為我們現在有換新的 domain 所以這個才需要修改,然後重新 build image 推上 Docker Hub (記得先 login)

docker build -t krystallll/docker_test:1.0 . --push

pull 新的 image 到 EC2 inatance 上

在 EC2 inatance 裡,先 login 到 Docker Hub,再將最新的 image 拉下來

docker pull krystallll/docker_test:1.0

修改 EC2 inatance 的 docker-compose.yml

將本來的

- "traefik.http.routers.app.rule=Host(`ec2-52-199-213-167.ap-northeast-1.compute.amazonaws.com`)"

改為

- "traefik.http.routers.app.rule=Host(`mydocker.online`)"`

並且將 app 的 ports 改為

ports:
    - 80:3000

在 docker 的 80 port 對到 app 的 3000 port,並先把 traefik 服務都先註解掉,我先確認這個 domain 確定可以連接,這時使用

docker-compose up

確認 domain 可以連接

📍 我們在設定 Godaddy 選擇了 600 秒,代表 600 秒後才會生效,所以若沒畫面也可能是還沒有成功生效,他最晚一天之內一定會好,如果沒好那可能就是你沒設定好 🥺

既然 Domain 都用好了,明天又要重回 traefik debug 地獄 🤮🤮🤮

上一篇

Docker - 在我部署的專案使用 Traefik 取得 HTTPS 協定(三)

下一篇

Docker - 在我部署的專案使用 Traefik 取得 HTTPS 協定(二)

©2025 By Krystal. 主题:Quiet
Quiet主题