跳過到頁腳內容
使用 IRONSECUREDOC

Docker Compose 環境變數 (開發人員教程)

在不同環境中部署應用程式通常會導致相容性問題。 應用程式可能在開發人員的機器上運行完美,但由於作業系統、依賴項或配置的差異,在測試或生產環境中會遇到問題。 Docker 透過將應用程式打包成包含運行應用程式所需的一切的獨立單元來解決這個問題,從而確保應用程式在從開發到生產的任何地方都能一致地運行。

Docker Compose 為容器化應用程式帶來了強大的優勢,尤其是在使用環境變數簡化不同設定之間的配置方面。 Docker Compose 允許在程式碼外部管理關鍵設置,從而使複雜應用程式的部署更加直接和安全。 基於這些優勢,本文也將展示如何使用IronSecureDoc進行安全文件處理,利用 Docker Compose 的靈活性來高效地處理加密和編輯配置。

什麼是 Docker?

Docker是一個開源系統,它透過容器化技術簡化應用程式的開發、部署和運作。 容器是超輕量級的可移植單元,其中包含應用程式及其依賴項,因此它們可以在任何地方(從開發人員的機器到生產伺服器)統一運行。 與傳統虛擬機器相比,容器共享宿主機作業系統的內核,因此速度更快、更有效率。

Docker Compose 環境變數(開發者教學):圖 1 - Docker 網頁

這意味著需要使用 Docker 映像形式的虛擬化範本來建立和維護這組容器。 此外,該平台還包含 Docker Hub,它在某種程度上是一個容器映像倉庫。 這項技術的優勢在於其在可擴展性、可移植性和效率方面的易用性,這也是它在許多 DevOps 和基於雲端的開發工作流程中廣受歡迎的原因之一。

Docker Compose 中的環境變數是什麼?

在 Docker 中,使用鍵值對形式的環境變數來配置容器化應用程式中的設定。 這些變數可用於控制應用程式本身的行為,而無需修改其程式碼,因為可以輕鬆變更資料庫憑證和 API 金鑰或環境模式(例如:開發、生產)等配置。

在 Docker 中,環境屬性可以在 Dockerfile 中定義,也可以在 docker-compose.yml 檔案中定義,或是執行時使用 docker run 指令傳遞。 透過使用環境變量,Docker 可以實現跨不同環境的一致且靈活的應用程式部署,並更有效地管理密碼和 API 令牌等敏感資料。

如何在 Docker 中建立環境變數?

在 Docker 中,我們可以透過多種方式定義環境變數。 它們可以透過 Docker Compose 檔案(docker-compose.yml 檔案)、環境變數檔案進行定義,甚至在執行時間執行 docker run 命令時進行定義。 記住,將環境變數與主配置文件分開,可以更輕鬆地組織變數! 以下是可用於定義變數的各種方法清單。

在 Dockerfile 中設定環境變數

我們可以使用 ENV 指令直接在 Dockerfile 中定義環境變數。 如果您想要為 Docker 映像中的變數包含預設值,這將非常有用。

# Dockerfile
# Set the application environment
ENV APP_ENV=development
# Set the database URL
ENV DATABASE_URL=postgres://user:password@db:1234/mydev

在 Dockerfile 中定義的環境變數值將在容器執行時自動套用。

在 Docker-Compose.yml 中設定環境變數

我們可以使用 environment 關鍵字在 docker-compose.yml 中為每個服務定義環境變數。 當您使用 Docker Compose 管理多個服務時,這將非常方便。

version: '3.8'
services:
  myapp:
    image: myapp:latest
    environment:
      - APP_ENV=development
      - DATABASE_URL=postgres://user:password@db:1234/mydev
version: '3.8'
services:
  myapp:
    image: myapp:latest
    environment:
      - APP_ENV=development
      - DATABASE_URL=postgres://user:password@db:1234/mydev
YAML

運行時設定環境變數

我們可以使用 docker run 指令的 -e 標誌來指定執行容器時的環境變數。 這適用於瞬態和動態值,這些值你可能不會加入到 Dockerfile 中。

docker run -e APP_ENV=development -e DATABASE_URL=postgres://user:password@db:1234/mydev myapp:latest
docker run -e APP_ENV=development -e DATABASE_URL=postgres://user:password@db:1234/mydev myapp:latest
SHELL

使用環境文件(.env)

我們可以將環境變數儲存在類似.env的檔案中,並將其載入到 Docker 容器中。 在 Docker Compose 中,我們將使用env_file指令來引用它。

# .env file
APP_ENV=production
DATABASE_URL=postgres://user:password@db:1234/mydev
# .env file
APP_ENV=production
DATABASE_URL=postgres://user:password@db:1234/mydev
SHELL

我們可以透過 env 檔案來管理多個文件,並將環境變數放在設定檔之外。

IronSecureDoc是什麼?

IronSecureDoc for Docker 使開發人員能夠輕鬆地在其容器化應用程式中添加安全文件處理功能。 學習了 Docker 之後,你可以使用 IronSecureDoc 將你的 ASP.NET Core 應用程式封裝在一個統一的環境中,從而更容易部署和擴展。 為此,您需要建立一個 Dockerfile,該 Dockerfile 使用 IronSecureDoc 庫來編排 ASP.NET Core 應用程式的構建,並且可能還需要其他安裝腳本或配置才能使應用程式正常運作。

Docker Compose 環境變數(開發者教學):圖 2 - IronSecureDoc 網頁

此外,它還包含一個 docker-compose.yml 文件,其中聲明了服務依賴項、環境變數和映射連接埠。 這使得執行文件安全任務變得更加容易,因此您的應用程式可以在開發或生產環境之外的環境中有效運作。 IronSecureDoc 的安裝和配置與 Docker 的情況類似,要正確實現 IronSecureDoc 的功能(例如文件加密、編輯等),需要正確的安裝和配置。

IronSecureDoc 的主要功能

IronSecureDoc 提供一系列強大的 PDF 安全性和文件管理功能:

*加密*:提供 128 位元或 256 位元加密,並採用基於密碼的安全措施來保護文件機密性。 編輯**:刪除敏感訊息,例如個人識別訊息,以符合隱私標準和法規。 *數位簽章:支援使用 .pfx 或 .p12 憑證進行數位簽章和公證,以確保文件的真實性。

  • REST API :靈活的 API 可與其他軟體和工作流程無縫整合。
  • Docker 整合:原生支援 Docker,簡化了雲端或本機應用程式的部署和擴充。

這些特性使得 IronSecureDoc 成為處理敏感文件的行業(如法律、醫療保健和金融)的絕佳選擇。

安裝和運行 IronSecureDoc

步驟 1

若要安裝 IronSecureDoc,請在終端機視窗或命令提示字元中執行下列命令,從儲存庫取得 IronSecureDoc Docker 映像。

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

Docker Compose 環境變數(開發者教學):圖 3 - 取得 IronSecureDoc 映像的控制台輸出

步驟 2

一旦 IronSecureDoc 映像被拉取,我們可以使用以下 docker-compose 命令將該映像運行到 Docker 容器中。

docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
SHELL

Docker Compose 環境變數(開發者教學):圖 4 - 執行 IronSecureDoc 映像的控制台輸出

我們使用 Docker 容器來運行 IronSoftware 的官方程式碼庫。 上面顯示的命令列分為幾個部分,下面將對此進行解釋。

命令說明

  • docker container run - 此指令使用給定的映像來建置和啟動一個新的 Docker 容器。
  • --rm - 容器停止運作時,立即自動清理容器。 它會在任何流程完成後移除所有未使用的容器。
  • -p 8080:8080 - 發布容器的 8080 端口,以便您可以透過 http://localhost:8080 在您的機器上存取它。
  • -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> - 在運行容器中設定一個名為 IronSecureDoc_LicenseKey 的環境變量,以便啟用和使用 IronSecureDoc 的授權功能。 代替<IRONSECUREDOC_LICENSE_KEY>用你的真鑰匙。
  • -e ENVIRONMENT=Development - 環境變數設定為 Development。 這意味著容器需要在開發模式下運作。 通常情況下,此容器用於測試或調試用例; 除此之外,它與非生產配置有所不同。
  • -e HTTP_PORTS=8080 - 此環境變數用於指定容器應公開並監聽連接埠 8080 以接收 HTTP 流量。 它透過這個特定連接埠確保對容器內服務的存取。
  • ironsoftwareofficial/ironsecuredoc:latest - 這是 Docker 映像。 這指定應使用 Docker 註冊表中 IronSecureDoc 的最新版本映像。

IronSecuredoc 容器

IronSecureDoc 的 REST API 允許使用者在 Docker 中啟動後對文件進行編輯、認證和加密。 在 Docker 容器中啟動 IronSecureDoc 後,以下是帶有 Swagger UI 的API 端點和文件的連結: http://localhost:8080/swagger/index.html

Docker Compose 環境變數(開發者教學):圖 5 - 用於與 API 端點互動的 Swagger UI

從上述範例中,我們可以向 IronSecureDoc API 發送 POST 請求來提交文件進行加密:

curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

這樣一來,IronSecureDoc 將收到文件並對其進行正確的加密。

結論

總之,Docker Compose 的環境變數允許以非常靈活和高效的方式配置應用程序,因為配置細節與應用程式程式碼自動分離。 因此,管理開發、測試和生產等不同環境變得更加簡單,因為只需要更改 API 金鑰、資料庫憑證和應用程式設定等變量,而無需更改其程式碼。

使用 Docker Compose 實現 IronSecureDoc 利用環境變數安全地處理許可訊息,例如 IronSecureDoc_LicenseKey,還可以使用環境變數指定 HTTP 連接埠或首選的環境模式(開發或生產)。 使用環境變數進行設定可以簡化 IronSecureDoc 的部署,減少配置的混亂和擴展難度,並提高安全性。

透過有效的 IronSecureDoc許可證即可使用進階功能。 該工具的使用嚴格取決於某些使用條款。 您還可以利用Iron Software提供的其他高效能函式庫,讓開發過程更輕鬆快捷,為任何可想像的應用程式提供強大的 PDF 處理、文字辨識和條碼功能。

Docker Compose 環境變數(開發者教學):圖 6 - IronSecureDoc 授權頁面

常見問題解答

Docker Compose 如何改善應用程式部署?

Docker Compose 透過使用環境變數從外部管理組態來增強應用程式的部署,可在不同環境中輕鬆擴充和適應,而無需修改應用程式程式碼。

環境變數在 Docker 中扮演什麼角色?

Docker 中的環境變數是獨立於程式碼配置應用程式設定的鍵值對,可安全管理密碼和 API 金鑰等敏感資訊。

IronSecureDoc 如何與 Docker 整合以進行安全的文件處理?

IronSecureDoc 與 Docker 整合,提供可使用 Docker 指令拉取並執行的 Docker 映像。它使用環境變數來設定加密、刪除和數位簽署等安全文件處理功能。

在 Docker Compose 中使用環境變數有什麼好處?

在 Docker Compose 中使用環境變數可以進行靈活的組態管理,將敏感資料保留在應用程式碼之外以提高安全性,並簡化跨各種環境的部署流程。

如何在 Docker 環境中執行 IronSecureDoc?

若要在 Docker 環境中執行 IronSecureDoc,您可以使用指令 docker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey= -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest ,指定必要的環境變數進行設定。

IronSecureDoc 為文件安全提供了哪些功能?

IronSecureDoc 提供文件加密、刪除、數位簽署等功能,並與 Docker 無縫整合,可在容器化環境中安全處理文件。

如何在 Docker Compose 設定中設定環境變數?

在 Docker Compose 中可以使用 docker-compose.yml 檔案、環境檔案或執行時指令來設定環境變數,提供管理應用程式組態的彈性與安全性。

在 Docker 部署中,為什麼將配置與程式碼分開很重要?

在 Docker 部署中,透過環境變數將組態與程式碼分離是非常重要的,因為這可增強安全性、簡化跨不同環境的管理,並降低暴露敏感資訊的風險。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。