Skip to content

Zeroplex 生活隨筆

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

標籤: docker

docker container 錯誤:entrypoint permission denied

Posted on 2022 年 9 月 24 日 By 日落 在〈docker container 錯誤:entrypoint permission denied〉中有 1 則留言

追 minikube 中的 log kubectl logs s3-provider-xxxx -p 時,看到錯誤訊息:

Defaulted container "s3fuse" out of: s3fuse, init-myservice (init)
/bin/sh: /docker-entrypoint.sh: Permission denied

第一,是檢查 docker-entrypoint.sh 的權限。要讓 script 可以執行,在 COPY 進 image 以後記得調整權限:

RUN ["chmod", "+x", "/docker-entrypoint.sh"]

另外,再看了一下 entrypoint 寫什麼:

#!/bin/bash
set -euo pipefail
set -o errexit
set -o errtrace
....

第一行這樣寫有點雷。

shebang 雖然可以讓 shell 可以了解需要使用哪一個直譯器來執行 script (可以參考之前 shebang 的介紹),但是每個系統的 bash 路徑並不一定相同。有些在 /bin/bash ,有些則在 /usr/bin/bash,當然還有其他例外。

若不確定直譯器的路徑時,可以透過 env 這個指令來協助,這個工具在個系統上的絕對路徑都是 /usr/bin/env,env 會從 runtime environment 偵測執行檔的路徑 (上面的範例是 bash),這樣一來 script 作者就不需要為每個環境來客製化設定。

用 env 來改寫 shebang,結果如下:

#!/usr/bin/env bash
set -euo pipefail
set -o errexit
set -o errtrace
....
Share this…
  • Facebook
  • Twitter
  • Telegram
  • Line
  • WordPress
Tags:docker, Linux

chown 在 docker image size 上的影響

Posted on 2022 年 8 月 15 日2022 年 8 月 16 日 By 日落 在〈chown 在 docker image size 上的影響〉中有 2 則留言

docker build 會將每個動作建立一個 image layer,好處就是相同的動作所建立 image layer 都可以重複使用,僅有新的動作會增加新的 image layer。

不過 chown 會讓 docker 將檔案判定為新的檔案,而另外新增一個 layer,導致 image size 增加。

以下是一個小實驗,其中 test.img 為 512MB 的檔案:

FROM ubuntu:20.04

# test:512-file
COPY test.img /var/

# test:512-chown
RUN chown www-data:www-data /var/test.img

然後針對第二、第三個指令分別 build -t 以後,透過 docker images 列出 images 和他的大小:

test       512-chown       02367f2a3158   4 seconds ago        1.15GB
test       512-file        965cb380f042   41 seconds ago       610MB

經過 chown 的 test.img 被 docker 判斷為新的檔案,因此多了一個 image layer 來儲存異動,image 就整整多了 512MB,這對建立 docker image 來說儲存、傳輸成本會大很多。

目前看到比較好的解法,是使用 COPY --chown 直接指定檔案的 owner,這樣異動就會放在同一個 image layer。

Share this…
  • Facebook
  • Twitter
  • Telegram
  • Line
  • WordPress
Tags:docker

dockerized mail server

Posted on 2021 年 4 月 18 日2021 年 4 月 17 日 By 日落 在〈dockerized mail server〉中尚無留言

之前看到 gslin 的文章「自建 Mail System 的難度」,最近跑去還債 (K 基礎教學) 才知道牽涉到的東西有那麼多 ….

由於容易的開發、部屬越發成熟,也開始有不少人開始把常用的工具和服務直接包成 image,讓自架 mail server 的門檻下降了不少。目前看到幾個感覺還不賴的 images,大家有興趣可以參考一下:

  • Mail-in-a-box
  • Mailu
  • docker-mailserver
Share this…
  • Facebook
  • Twitter
  • Telegram
  • Line
  • WordPress
Tags:docker, mail

Docker on Windows 10 鳥鳥的

Posted on 2021 年 1 月 28 日2021 年 3 月 12 日 By 日落 在〈Docker on Windows 10 鳥鳥的〉中尚無留言

Docker client 的是窗是長這樣:

如果要進 images 就更麻煩了,沒有好的 shell 可以用:

好險只打算用一次做 dirty work ….

Share this…


  • Facebook


  • Twitter



  • Telegram



  • Line



  • WordPress

Tags:docker, Windows

幾個清空 docker 資料的好用指定

Posted on 2019 年 5 月 3 日2021 年 3 月 12 日 By 日落 在〈幾個清空 docker 資料的好用指定〉中尚無留言

中斷所有正在運作的 container:

docker kill $(docker ps -q)

刪除所有已中止的 container:

docker rm $(docker ps -a -q)

刪除所有的 images:

docker rmi $(docker images -q)

節錄自:Top 10 Docker CLI commands you can’t live without

Share this…


  • Facebook


  • Twitter



  • Telegram



  • Line



  • WordPress

Tags:docker, Linux

文章導覽

1 2 下一頁

其他

關於我  (About me)

小額贊助

  文章 RSS Feed

  留言 RSS Feed

3C Apache AWS Bash C/C++ docker FreeBSD Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 小提琴 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.

Go to mobile version