Cloud Workstations 提供的預先設定基本映像檔僅包含 IDE、基本 Linux 終端機和語言工具,以及 sshd 伺服器,屬於最精簡的環境。如要加快特定開發用途的環境設定速度,您可以建立擴充這些基本映像檔的自訂容器映像檔,預先安裝工具和依附元件,以及執行自動化指令碼。
如果是自訂容器映像檔,建議您設定管道,在 Cloud Workstations 基本映像檔更新時自動重建這些映像檔,並執行 Artifact Analysis 等容器掃描工具,檢查您新增的任何其他依附元件。您有責任維護及更新新增至自訂映像檔的自訂套件和依附元件。
事前準備
您需要具備容器映像檔建構工具 (例如 Docker) 的機器,並使用 Google Cloud CLI 將映像檔推送至 Artifact Registry。您可以使用 Cloud Workstations 或 Cloud Shell 編輯器執行這些步驟,因為這些工具已預先安裝。
從支援的基本映像檔清單中選取要使用的基本映像檔,例如
us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest。或者,您也可以使用自己的容器映像檔,或按照「使用自己的容器映像檔」一文的說明,使用外部容器映像檔。
建立資料夾 (例如
CUSTOM_IMAGE_FOLDER),並在這個資料夾中建立 Dockerfile,擴充所選基本映像檔,如下列範例所示。
Cloud Workstations 基礎映像檔結構
Cloud Workstations 基礎映像檔共用下列定義的結構:
- 基本映像檔進入點檔案設為
/google/scripts/entrypoint.sh。 啟動時,基礎映像檔會依字典順序執行
/etc/workstation-startup.d/*下的檔案,以初始化工作站環境。檔案及其行為如下:
000_configure-docker.sh:在工作站內設定及執行 Docker。010_add-user.sh:在 Cloud Workstations 中建立預設使用者。由於永久磁碟會動態連結至容器,因此使用者必須在工作站啟動時新增,而非在 Dockerfile 中新增。
020_start-sshd.sh:在容器中啟動sshd服務。030_customize-environment.sh:以user形式執行/home/user/.workstation/customize_environment。110_start-$IDE.sh:啟動圖片的 IDE。
Cloud Workstations 會將 Docker 映像檔儲存在
/home/.docker_data的主目錄中,以便在工作階段之間保留映像檔。
如要在工作站啟動期間新增其他功能,請在 /etc/workstation-startup.d/ 目錄中加入指令碼:
根據預設,這個目錄中的指令碼會以根使用者身分執行。如要以其他使用者身分執行指令碼,請使用
runuser指令。由於指令碼會依字典順序執行,建議您在指令碼前加上大於 200 的三位數數字。
或者,如果不想擴充工作站映像檔,可以在主目錄中建立 customize_environment 指令碼。
主目錄修改
如果工作站設定指定永久主目錄 (這是預設行為),系統會在執行階段將支援主目錄的永久磁碟動態附加至容器。這個程序會覆寫在建構容器映像檔時對 /home 目錄所做的修改。
如要保留更新,請在容器執行階段修改 /home 目錄,方法是在 /etc/workstation-startup.d 目錄中新增指令碼,或在 /etc/profile.d 目錄中新增個別使用者的設定。為加快程序,請考慮將設定指令碼做為背景程序執行 (在指令結尾加上連字號 &),避免阻礙容器啟動。
以下列出一些應移至容器執行階段的建構時間設定:
- 使用者專屬
git設定 - 複製到主目錄的
git個存放區 - 直接設定使用者,例如將檔案放入
$HOME/.config目錄 - 建立使用者
建立及修改使用者
由於永久磁碟會在執行階段動態連結至容器,因此使用者必須在工作站啟動時新增,而非在 Dockerfile 中新增。如要修改或建立其他使用者,建議您更新 /etc/workstation-startup.d/010_add-user.sh,或建立自己的啟動時執行指令碼。
此外,您也可以更新 /etc/profile.d 中的檔案,修改使用者的預設 bash 設定檔。
更新預先設定的 Secure APT 金鑰
Cloud Workstations 基本映像檔預先安裝了許多工具,這些工具是透過 Secure APT 從各種第三方存放區取得。在安裝過程中,系統會使用 gpg 匯入存放區擁有者提供的公開金鑰,並將金鑰放入 /usr/share/keyrings/ 下的個別檔案。這些檔案會從 /etc/apt/sources.list.d/ 下的對應 list 檔案參照。這樣一來,apt 與存放區互動時,就能驗證存放區的完整性。
有時,第三方存放區擁有者可能會決定變更用於驗證存放區完整性的公開金鑰,導致 apt 在與存放區互動時顯示錯誤。如要解決這個潛在問題,可以使用 /google/scripts/refresh-preinstalled-apt-keys.sh 取得最新版本的預先安裝公開金鑰,然後重新匯入。
列出已安裝的 IDE 版本
部分 Cloud Workstations 基本映像檔已預先安裝 IDE。為方便起見,請參閱內含的 /google/scripts/preinstalled-ide-versions.sh 指令碼,其中列出映像檔中安裝的 IDE 名稱和版本資訊。
關閉 sudo Root 權限
預設工作站使用者在這些容器中擁有 sudo Root 存取權。如要關閉 Docker 容器的根存取權,請在建立工作站設定時,將 CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO 環境變數設為 true。
如要在建立工作站設定時,透過 Google Cloud 控制台設定此環境變數,請按照下列步驟操作:
- 建立工作站設定時,請完成「基本資訊」和「機器設定」的設定。
- 在「環境自訂」對話方塊中,展開「進階容器選項」區段,然後選取「環境變數」。
- 按一下「新增」新增變數。
- 輸入
CLOUD_WORKSTATIONS_CONFIG_DISABLE_SUDO和true做為值。
自訂圖片,但不延伸圖片
為方便起見,所有 Cloud Workstations 基礎映像檔都會檢查 /home/user/.workstation/customize_environment 是否有可執行檔,如有,則會在背景以 user 形式執行。這可讓您在啟動時執行任何指令碼或二進位檔。與 .profile 或 .bashrc 不同,指令碼只會在工作站啟動時執行一次,而不是在每次登入殼層時執行。
由於 customize_environment 指令碼會以 user 形式執行,因此編寫指令碼時,請務必視需要更新權限。舉例來說,如果您想在每次啟動工作站時安裝 Emacs,customize_environment 的內容可能類似於下列內容:
#!/bin/bash
sudo apt-get update
sudo apt-get install -y emacs
customize_environment 的執行記錄位於容器的 /var/log/customize_environment,也會寫入容器輸出記錄。成功執行 customize_environment 後,系統會在 /var/run/customize_environment_done 中建立檔案。由於 customize_environment 與工作站啟動作業並行執行,因此工作站啟動後不久,指令碼安裝的套件就能使用。
使用自己的容器映像檔
您也可以使用自己的容器映像檔或外部容器映像檔,只要這些映像檔是以 Linux 為基礎,且在容器啟動時執行封鎖程序即可。
設定 Dockerfile 時,ENTRYPOINT 指令必須執行封鎖程序 (例如 sleep infinity),讓容器持續執行,而不是立即結束。或者,您可以在工作站設定中設定 config.container.args 欄位,指定封鎖程序。
使用自己的容器映像檔時,請注意下列事項:
Cloud Workstations 不需要 Cloud Workstations 基礎映像檔中的其他指令碼。
不過,您可以查看執行 Cloud Workstations 基本映像檔的容器中,
/etc/workstation-startup.d/目錄內的指令碼。檔案名稱會說明每個指令碼的功能。建議您在容器中執行 SSH 伺服器。如要瞭解 Cloud Workstations 如何預設設定此項目,請參閱預設基礎映像檔中的
/etc/workstation-startup.d/020_start-sshd.sh。建議您在通訊埠
80上執行預設的 IDE 或網頁伺服器。
擴充 Cloud Workstations 基礎映像檔
擴充 Cloud Workstations 基本映像檔,為工作站環境建立自訂映像檔時,可以採取三種方法:
- 更新
Dockerfile,加入要新增的任何其他靜態資產。 - 在
/etc/workstation-startup.d/下新增其他可執行檔,即可自訂執行中的容器。這個目錄下的檔案會在容器啟動時自動依字典順序執行,因此您可以在檔案名稱加上前置字元,在工作站啟動期間的適當時間執行檔案。 - 覆寫 Dockerfile 中的
ENTRYPOINT,即可全面自訂容器啟動程序。
自訂 Dockerfile 範例
本節提供範例情境和操作說明,協助您建立自己的 Dockerfile。
預先安裝 emacs 的容器映像檔
如要建立預先安裝 emacs 的容器映像檔,請執行下列指令:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN sudo apt update
RUN sudo apt install -y emacs
使用者自訂的容器映像檔
如要自訂容器映像檔,請按照下列步驟操作:
在
/etc/workstation-startup.d/*中建立指令碼,在010_add-user.sh之後執行,例如011_customize-user.sh:#!/bin/bash # Create new group groupadd $GROUP # Add the user to a new group usermod -a -G $GROUP $USERNAME將
$GROUP替換為新群組名稱,並將$USERNAME替換為使用者名稱。假設您將指令碼命名為
011_customize-user.sh,請在 Dockerfile 中將下列內容新增至映像檔,並設為可執行:FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest COPY 011_customize-user.sh /etc/workstation-startup.d/ RUN chmod +x /etc/workstation-startup.d/011_customize-user.sh
容器映像檔,可在 SSH 工作階段中設定容器環境變數
工作站設定或工作站層級設定的環境變數,會透過進入點指令傳遞至直接子程序。包括預先設定基本映像檔中的 IDE。不過,SSH 工作階段並非進入點的子程序,因此不會設定這些自訂環境變數。
如要在 SSH 工作階段中設定這些環境變數,請設定自訂容器映像檔,將這些環境變數從容器的進入點指令轉送至 /etc/environment 檔案。
如要達成這個目標,請按照下列步驟操作:
在
/etc/workstation-startup.d/*中建立指令碼,在010_add-user.sh之後執行,例如011_add-ssh-env-variables.sh:#!/bin/bash # echo "CUSTOM_ENV_VAR=$CUSTOM_ENV_VAR" >> /etc/environment將
CUSTOM_ENV_VAR替換成預期的環境變數名稱。假設您將指令碼命名為
011_add-ssh-env-variables.sh,請在 Dockerfile 中將下列內容新增至映像檔,並設為可執行:FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest COPY 011_add-ssh-env-variables.sh /etc/workstation-startup.d/ RUN chmod +x /etc/workstation-startup.d/011_add-ssh-env-variables.sh
可為 SSH 工作階段啟用 X11 轉送功能的容器映像檔
X11 轉送功能可啟動遠端應用程式,並將應用程式畫面轉送至本機電腦。
如要建立啟用 X11 轉送功能的容器映像檔,請修改 Cloud Workstations 基本映像檔提供的 OpenSSH 精靈設定檔 (/etc/ssh/sshd_config),方法是附加 X11Forwarding yes (允許 X11 轉送) 和 AddressFamily inet (確保只使用 IPv4)。如要進一步瞭解這些關鍵字,請參閱 OpenBSD 網頁上的 AddressFamily 和 X11Forwarding。
以下是範例 Dockerfile,其中包含必要的修改內容:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
# Permit X11 forwarding using only IPv4
RUN cat >> /etc/ssh/sshd_config <<-EOF
AddressFamily inet
X11Forwarding yes
EOF
將 Cloud Workstations 的 Code OSS 複製到其他容器映像檔
多階段建構可讓您在 Dockerfile 中使用多個 FROM 陳述式。每項 FROM 指令都可以使用不同的基礎,並在建構階段之間複製構件。如要將 Cloud Workstations 適用的 Code OSS 新增至其他容器映像檔,請使用多階段建構作業,將應用程式資料夾 /opt/code-oss 複製到映像檔中。如要在容器啟動時啟動 Cloud Workstations 的 Code OSS,請額外將指令碼 /etc/workstation-startup.d/110_start-code-oss.sh 複製到容器中。
以下是 Dockerfile 範例,可將 Code OSS 複製到 JetBrains IntelliJ Ultimate 映像檔。接著,您就可以與任一 IDE 互動:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest as code-oss-image
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/jetbrains-intellij:latest
# Copy Code OSS for Cloud Workstations and startup scripts into our custom image
COPY --from=code-oss-image /opt/code-oss /opt/code-oss
COPY --from=code-oss-image /etc/workstation-startup.d/110_start-code-oss.sh /etc/workstation-startup.d/110_start-code-oss.sh
# Use the existing entrypoint script which will execute all scripts in /etc/workstation-startup.d/
ENTRYPOINT ["/google/scripts/entrypoint.sh"]
容器映像檔,可在 Code OSS 中預先安裝 IDE 擴充功能,以便在 Cloud Workstations 中進行 Java 開發
如要建立容器映像檔,在建構時預先安裝適用於 Java 開發的 Cloud Workstations Code OSS IDE 擴充功能,請執行下列指令:
FROM us-central1-docker.pkg.dev/cloud-workstations-images/predefined/code-oss:latest
RUN wget https://open-vsx.org/api/vscjava/vscode-java-debug/0.40.1/file/vscjava.vscode-java-debug-0.40.1.vsix && \
unzip vscjava.vscode-java-debug-0.40.1.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-debug
RUN wget https://open-vsx.org/api/vscjava/vscode-java-dependency/0.19.1/file/vscjava.vscode-java-dependency-0.19.1.vsix && \
unzip vscjava.vscode-java-dependency-0.19.1.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-dependency
RUN wget https://open-vsx.org/api/redhat/java/1.6.0/file/redhat.java-1.6.0.vsix && \
unzip redhat.java-1.6.0.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/redhat-java
RUN wget https://open-vsx.org/api/vscjava/vscode-maven/0.35.2/file/vscjava.vscode-maven-0.35.2.vsix && \
unzip vscjava.vscode-maven-0.35.2.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-maven
RUN wget https://open-vsx.org/api/vscjava/vscode-java-test/0.35.0/file/vscjava.vscode-java-test-0.35.0.vsix && \
unzip vscjava.vscode-java-test-0.35.0.vsix "extension/*" &&\
mv extension /opt/code-oss/extensions/java-test
RUN chmod a+rwx -R /opt/code-oss/extensions/
預先安裝的擴充功能會視為內建擴充功能。
您將無法更新這些擴充功能,且這些擴充功能可能不會顯示在
擴充功能市集的已安裝區段中。不過,您可以搜尋
@builtin 尋找內建擴充功能。
如要在啟動時安裝擴充功能,也可以執行開機指令碼。舉例來說,請在 /etc/workstation-startup.d/120_install_extensions.sh 下方加入下列開機指令碼:
sudo -u user /opt/code-oss/bin/codeoss-cloudworkstations --install-extension vscjava.vscode-java-debug@0.40.1 \
--install-extension vscjava.vscode-java-dependency@0.19.1 \
--install-extension redhat.java@1.6.0 \
--install-extension vscjava.vscode-maven@0.35.2 \
--install-extension vscjava.vscode-java-test@0.35.0
使用這個方法,擴充功能會顯示在 Extensions Marketplace,您可以在該處更新擴充功能。
將 JetBrains IDE 和外掛程式安裝至基礎映像檔
自訂工作站設定的 Docker 映像檔時,您可以將 JetBrains IDE 和外掛程式 (例如 Cloud Code for IntelliJ) 安裝到基礎映像檔中。JetBrains 產品適用的 Cloud Workstations 基礎映像檔包含下列指令碼,可協助您:
jetbrains-installer.sh:安裝 JetBrains IDEplugin-installer.sh:安裝外掛程式,例如 Cloud Code for IntelliJ
視需要使用這些指令碼自訂基本映像檔、透過開機指令碼呼叫這些指令碼,或在啟動工作站後執行這些指令碼。
安裝程式指令碼
如要查看 jetbrains-installer.sh 和 plugin-installer.sh 指令碼的來源檔案,請使用採用其中一個 JetBrains 預先定義映像檔的工作站設定啟動工作站,透過 JetBrains Gateway 或 SSH 連線至工作站,然後瀏覽位於根目錄的 installer-scripts 目錄中的指令碼檔案。
建議您在容器建構期間執行這些指令碼。避免在已啟動的工作站中執行這些指令。
使用外掛程式安裝程式指令碼
plugin-installer.sh 指令碼使用以下語法:
plugin-installer.sh [-v VERSION] [-d DESTINATION-DIRECTORY] [-c CHECKSUM] [-f] PLUGIN_ID
更改下列內容:
VERSION:要安裝的外掛程式版本號碼 (選用)。DESTINATION-DIRECTORY:外掛程式應安裝的選用目錄。如未指定,則會使用工作目錄。CHECKSUM:所要求外掛程式的選用 SHA-256 總和檢查碼。-f:如果指定,系統會覆寫任何現有外掛程式。PLUGIN_ID:JetBrains Marketplace 的必要外掛程式數值 ID。舉例來說,如要新增 Dart,請使用6351做為 PLUGIN_ID。如要新增 Cloud Code for IntelliJ,請使用8079做為 PLUGIN_ID。
舉例來說,如要在 IntelliJ 中安裝最新版本的 Dart 外掛程式,請執行下列指令:
/installer-scripts/plugin-installer.sh -d /opt/ideaIU/plugins/ 6351
使用 JetBrains 安裝程式指令碼
我們建議您在擴充 JetBrains IDE 的預先設定基礎映像檔時,使用 JetBrains 安裝程式指令碼。
jetbrains-installer.sh 指令碼使用以下語法:
jetbrains-installer.sh IDE [ pinned|latest ]
更改下列內容:
IDE:要安裝的 JetBrains IDE。您必須使用下列其中一個 IDE 縮寫:IDE 已安裝產品 clCLion clionCLion goGoLand golandGoLand iiuIntellij Ultimate intellijIntellij Ultimate pcpPyCharm Professional pycharmPyCharm Professional psPHPStorm phpstormPHPStorm rdRider riderRider rmRubyMine rubymineRubyMine wsWebStorm webstormWebStorm pinned|latest:選用 - 使用釘選或最新版本的 IDE。預設值為latest。
舉例來說,如要安裝最新版本的 Clion,請執行下列指令:
/installer-scripts/jetbrains-installer.sh clion
自訂 JetBrains IDE 設定檔
如果在工作站設定中指定持續性主目錄,Cloud Workstations 基礎映像檔 (含 JetBrains IDE) 會自動保留 $IDE.vmoptions 和 $IDE.properties 設定檔。如要覆寫這些檔案的預設位置,請指定 CLOUD_WORKSTATIONS_JETBRAINS_PERISTED_CONFIG_DIR 環境變數。
如需更多資訊,請參閱任何 JetBrains 基礎映像檔中的 /etc/workstation-startup.d/120_persist-jetbrains-configs.sh,瞭解 Cloud Workstations 如何預設設定這項功能。
使用 Cloud Code for IntelliJ 擴充基本 Docker 映像檔
下列 Dockerfile 片段會納入 8079 做為必要外掛程式 ID,藉此使用 Cloud Code for IntelliJ 擴充基本 Docker 映像檔。這個範例也會選擇性地指定 version 22.9.3-222 做為版本號碼、/opt/ideaIU/plugins/ 做為目的地目錄,以及 89628279ed9042c526a81facc09bf53f8fb8b83b4595b0d329d94c1611e0c379 做為總和檢查碼:
...
# Install IDE and Plugins
RUN bash /installer-scripts/jetbrains-installer.sh intellij pinned && \
# Install Cloud Code - https://plugins.jetbrains.com/plugin/8079-cloud-code
bash /installer-scripts/plugin-installer.sh \
-v 22.9.3-222 \
-d /opt/ideaIU/plugins/ \
-c 89628279ed9042c526a81facc09bf53f8fb8b83b4595b0d329d94c1611e0c379 \
8079
# Register IDE with JetBrains Gateway
RUN echo 'runuser user -c "/opt/ideaIU/bin/remote-dev-server.sh registerBackendLocationForGateway"' > /etc/workstation-startup.d/110_register-intellij-with-gateway.sh \
echo 'echo "IntelliJ-Ultimate ready for incoming gateway connection"' >> /etc/workstation-startup.d/110_register-intellij-with-gateway.sh
...
在 Cloud Workstations 的 Code OSS 中安裝其他 IDE 擴充功能
如要尋找其他 IDE 擴充功能,請前往 Open VSX 登錄。
您也可以複製任何擴充功能的「下載」連結,找出 .vsix 檔案的網址。
如果從工作站開啟「擴充功能市集」,系統會顯示「安裝」,而非「下載」。
Cloud Workstations 的預設 Code OSS 設定
如要進一步瞭解如何在 Cloud Workstations 的 Code OSS 中儲存設定,請參閱「自訂設定」。
如果您在工作站設定中指定永久主目錄,可以新增啟動指令碼,將設定寫入 $HOME/.codeoss-cloudworkstations/data/Machine/settings.json,為 Cloud Workstations 設定 Code OSS 的預設設定。
舉例來說,如要將預設顏色主題設為「深色」,請擴充基本編輯器映像檔,在 /etc/workstation-startup.d/150_default-ide-color-theme.sh 下方加入下列指令碼:
cat <<< $(jq '. += {"workbench.colorTheme": "Default Dark Modern"}' settings.json) > settings.json
建構自訂容器映像檔
如需 Docker 指令的詳細資訊,請參閱 Docker 參考資料。輸入下列指令來建構容器:
docker build CUSTOM_IMAGE_FOLDER -t TARGET_IMAGE
請注意,如果取代「編輯」「編輯」圖示前的文字,這個頁面上的其他範例也會更新。
更改下列內容:
CUSTOM_IMAGE_FOLDER:您建立的資料夾路徑,用於儲存自訂圖片。TARGET_IMAGE:Artifact Registry 中圖片的路徑。舉例來說,
TARGET_IMAGE可能會指向類似下列路徑的目標圖片路徑:*.pkg.dev/cloud-workstations-external/customimage:latest視需要將 * 替換為區域名稱和任何其他 ID。
您也可以更新 CLOUD_WORKSTATIONS_CUSTOM_IMAGE 環境變數,指向存放區。
如要進一步瞭解如何在 Artifact Registry 中儲存 Docker 映像檔,請參閱下列章節:
代管自訂容器映像檔
如要託管自訂容器映像檔,建議使用 Artifact Registry,我們也提供相關支援。 如果您使用 GitHub 或任何其他公開或私人存放區,Cloud Workstations 可能無法正常運作。詳情請參閱「使用自訂容器映像檔」一節中的重要附註。
測試自訂容器映像檔
容器建構完成後,您可以使用下列指令進行測試:
docker run --privileged -p LOCAL_PORT:CONTAINER_PORT TARGET_IMAGE
更改下列內容:
LOCAL_PORT:本機通訊埠編號CONTAINER_PORT:容器通訊埠編號
舉例來說,將 LOCAL_PORT:CONTAINER_PORT 替換為 8080:80,即可指派通訊埠 8080 供本機使用,並指派通訊埠 80 供容器使用。
如果您要擴充 Cloud Workstations 基本編輯器映像檔,請執行 docker 指令,然後透過本機瀏覽器連線至工作站,或執行 ssh 連線至容器,藉此測試工作站映像檔:
- 如果透過瀏覽器連線,請務必將
-p 8080:80傳遞至docker run指令,然後開啟localhost:8080。 - 如要透過 SSH 連線,請務必將
-p 2222:22傳遞至docker run指令,然後執行ssh user@localhost -p 2222。
使用自訂容器映像檔
在本機建構及測試自訂容器映像檔後,請執行下列指令,將容器推送至 Artifact Registry:
docker push TARGET_IMAGE
您現在可以使用剛建立及推送的容器映像檔,建立工作站設定。
詳情請參閱「使用 Artifact Registry 建立 Docker 存放區」。
偵錯問題
如要找出並偵錯容器映像檔執行時的問題,請查看執行中工作站的容器輸出記錄。
建議:協助保護映像檔管道
您有責任維護及更新自訂映像檔中新增的自訂套件和依附元件。
如要建立自訂圖片,建議採取下列做法:
執行容器掃描工具 (例如 Artifact Analysis),檢查您新增的其他依附元件。
後續步驟
- 自動重建容器映像檔,使用 Cloud Build 和 Cloud Scheduler 同步處理基本映像檔更新。
- 設定安全性最佳做法。
- 進一步瞭解 Artifact Analysis。