Docker Compose 環境變數(開發者教程)
在不同環境中部署應用程式常導致相容性問題。 應用程式可能在開發者的機器上完美運行,但因為操作系統、依賴或配置的不同,而在測試或生產中遇到問題。 Docker通過將應用程式打包成包含運行應用所需一切的自包含單元,從開發到生產確保其一致工作,從而解決了這個問題。
Docker Compose為容器化應用程式帶來強大的好處,特別是其使用環境變數來簡化不同設定的配置。 通過允許在程式碼之外管理關鍵設置,Docker Compose使得複雜應用程式的部署更加簡單和安全。 建立在這些優勢的基礎上,本文還將展示如何使用IronSecureDoc進行安全文件處理,利用Docker Compose的靈活性高效處理加密和編輯配置。
什麼是Docker?
Docker是一個開源系統,通過容器化來簡化應用程式的開發、部署和運行。 容器是超輕量的移動單元,包含程式和其依賴,以便它們能夠在任何地方統一運行——從開發者的機器到生產伺服器。 容器與傳統虛擬機共享主機操作系統的內核,因此速度更快,效率更高。

這意味著作為Docker映像形式的虛擬化範本來製作和維護這個容器集合。 此外,該平台還包含Docker Hub,這在某種程度上是個容器映像庫。 這種技術的美妙之處在於其關於可擴展性、可移植性和效率的易用性,這也是它在許多DevOps和基於雲的開發工作流中如此受歡迎的原因之一。
Docker-Compose 中的環境變數是什麼?
在Docker中,環境變數作為鍵值對的形式被用於配置容器化應用中的設定。 這些變數能夠幫助控制應用程式本身的行為,而不需修改其程式碼,因為像資料庫憑證、API密鑰或環境模式(例如:開發、生成)等配置可以輕易更改。
在Docker中,環境屬性可以在Dockerfile內定義,在docker-compose.yml文件中,或在運行時通過docker運行命令傳遞。 使用環境變數,Docker允許在不同環境間的應用部署保持一致和靈活,並更有效地管理如密碼和API令牌等敏感資料。
如何在 Docker 中建立環境變數?
我們可以用多種方法在Docker中定義環境變數。 它們可以在Docker Compose文件、docker-compose.yml文件中定義,在環境文件中,甚至在運行時執行docker運行命令時定義。 記住,將環境變數與主要配置檔分開能夠更容易組織變數! 這裡是可以用來定義您變數的各種方法的列表。
在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/mydevversion: '3.8'
services:
myapp:
image: myapp:latest
environment:
- APP_ENV=development
- DATABASE_URL=postgres://user:password@db:1234/mydev在運行時設置環境變數
我們可以在運行容器時使用-e旗標及docker運行命令指定環境變數。 這適合於短暫和動態的值,您大概不會將它們新增到Dockerfile中。
docker run -e APP_ENV=development -e DATABASE_URL=postgres://user:password@db:1234/mydev myapp:latestdocker run -e APP_ENV=development -e DATABASE_URL=postgres://user:password@db:1234/mydev myapp:latest使用環境文件(.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我們可以通過env文件來管理多個文件,這樣環境變數就可以在配置檔之外。
T>## 什麼是IronSecureDoc?
IronSecureDoc for Docker使開發人員可以輕鬆地將安全文件處理功能新增到其容器化應用中。 學會Docker後,您可以將您的ASP.NET Core應用與IronSecureDoc封裝在統一的環境中,使其更容易部署和擴展。 為此,您將生成一個Dockerfile來協調您的ASP.NET Core應用的構建,使用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/ironsecuredocdocker pull ironsoftwareofficial/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:latestdocker container run --rm -p 8080:8080 -e IronSecureDoc_LicenseKey=<IRONSECUREDOC_LICENSE_KEY> -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
我們使用docker容器運行Iron Software的官方儲存庫。 上面的命令行被分為幾個部分,以下進行解釋。
命令解釋
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- 環境變數設為開發。 這意味著容器需要在開發模式下運行。 通常,此容器用於測試或除錯情況; 除此之外,還取決於非生產環境的配置。-e HTTP_PORTS=8080- 此環境變數用來指定容器應暴露和監聽8080端口的HTTP流量。 通過經過這個特定的端口以確保能存取到容器內的服務。ironsoftwareofficial/ironsecuredoc:latest- 這是Docker映像。 這指定應該從Docker注冊表使用最新版本的IronSecureDoc映像。
IronSecureDoc容器
IronSecureDoc的REST API允許使用者在Docker中啟動後編輯、認証和加密文件。 以下是API端點及使用Swagger UI的文件連結,當您已在Docker容器中啟動IronSecureDoc後:http://localhost:8080/swagger/index.html。

從上面的例子中,我們可以向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'這樣做時,IronSecureDoc將接收該文件並正確加密。
結論
總之,Docker Compose的環境變數允許應用程式以相當靈活和高效的方式配置,因為配置詳情被自動地與應用程式程式碼分開。 因此,管理不同的環境,比如開發、測試和生產變得更簡單,因為只需更改API密鑰、資料庫資格證書和應用設定等變數,而非程式碼。
使用Docker Compose來實施IronSecureDoc利用環境變數來安全處理授權資訊,例如IronSecureDoc_LicenseKey,以及指定HTTP端口或以開發或生成的環境模式首選使用環境變數。 使用環境變數進行設定使部署IronSecureDoc更簡單,不易混亂且難以擴展的配置,提高了安全性。
通過有效的授權可存取高級功能的IronSecureDoc。 該工具的應用嚴格取決於某些使用條款。 您還可以使用Iron Software提供的其他高性能程式庫,使開發過程更簡單快捷,提供豐富的功能用於處理PDF、文字識別和條碼的任何可構思的應用。

常見問題
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=,指定設置所需的環境變數。
IronSecureDoc 為文件安全提供了什麼功能?
IronSecureDoc 提供文件加密、編校、數位簽署等功能,並無縫整合到 Docker 中,以確保在容器化環境中安全處理文件。
在 Docker Compose 設置中,如何設置環境變數?
可以在 Docker Compose 中使用 docker-compose.yml 文件、環境文件或運行時命令設置環境變數,提供在管理應用程式配置時的靈活性和安全性。
為什麼在 Docker 部署中將配置與程式碼分離是重要的?
通過環境變數將配置與程式碼分離在 Docker 部署中是重要的,因為它增強了安全性,簡化了不同環境中的管理,並降低了暴露敏感資訊的風險。








