drone學(xué)習(xí)筆記-發(fā)布鏡像

測試drone部署鏡像又遇到N個坑。第一個就是拉取鏡像被墻。好吧,這個可以通過國內(nèi)鏡像解決。另一個就是一直在報的錯誤

Failed to create btrfs snapshot: inappropriate ioctl for device

硬件設(shè)置還是synology 716 + II
.drone.yml

# workspace:
#   base: /go
#   path: src/test/demo

pipeline:
  # build:
  #   image: golang:latest
  #   commands:
  #     - go test
  publish:
    image: plugins/docker
    repo: sunsl/demo
    tags : latest
    debug: true
      
# services:
#   database:
#     image: mongo:latest

編譯錯誤

群暉docker信息

從信息中可以看到 Storage Driver為btrfs
Use the BTRFS storage driver文中有這樣的提示:

Note: The btrfs storage driver is only supported on Docker CE on Ubuntu or Debian, and Docker EE / CS Engine on SLES.

折騰了一天多的時間,看到這里郁悶了,好吧暫時放棄在群暉下測試drone,換服務(wù)器測試.....

==,先梳理下思路,看看還有什么沒測試到的地方

  1. docker運行在btrfs存儲上
  2. docker啟動drone的server和agent容器
  3. drone根據(jù)配置文件啟動一個測試容器(與drone是同一層級的容器)
  4. 測試容器內(nèi)啟動一個docker并根據(jù)dockerfile生成鏡像文件(Docker in Docker)

逐步測試:

  1. 在最外層測試創(chuàng)建鏡像 (測試通過)

Dockerfile

FROM alpine
RUN echo "Hello docker!"
RUN echo "make dir"
RUN mkdir -p /data/db
RUN echo "expose port"
EXPOSE 8000

編譯

 sudo docker build -t sunsl/demo .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM alpine
 ---> 7328f6f8b418
Step 2 : RUN echo "Hello docker!"
 ---> Running in ce54f9d9a8e6
Hello docker!
 ---> ef0ff48accdc
Removing intermediate container ce54f9d9a8e6
Step 3 : RUN echo "make dir"
 ---> Running in 6fa6e5a214e9
make dir
 ---> eae38249e291
Removing intermediate container 6fa6e5a214e9
Step 4 : RUN mkdir -p /data/db
 ---> Running in 7ff9d7c7f1bd
 ---> cb5244f6649e
Removing intermediate container 7ff9d7c7f1bd
Step 5 : RUN echo "expose port"
 ---> Running in 36e80521a0b2
expose port
 ---> aa9dc796f37a
Removing intermediate container 36e80521a0b2
Step 6 : EXPOSE 8000
 ---> Running in 686876f7af63
 ---> b6081a0bce0d
Removing intermediate container 686876f7af63
Step 7 : RUN echo "completed!!!"
 ---> Running in c227d0885785
completed!!!
 ---> 610405572a84
Removing intermediate container c227d0885785
Successfully built 610405572a84
  1. 啟動一個library/docker在其內(nèi)部創(chuàng)建鏡像(Docker in Docker) 測試正常?。?!
sudo docker run -it --privileged --name some-docker -d docker:17.07.0-ce-dind

admin@sunsl-dev:~$ sudo docker run -it --privileged --name some-docker -d docker:17.07.0-ce-dind
f131d5b26279e7023d6c5a6224c63e1aaa96ff4882aa3975a14031293a51712c

admin@sunsl-dev:~$ sudo docker run -it --rm --link some-docker:docker docker sh
~ # mkdir docker
~ # vi Dockerfile
~ # docker build -t sunsl/demo .
Sending build context to Docker daemon  3.584kB
Step 1/7 : FROM daocloud.io/library/alpine:latest
 ---> 7328f6f8b418
Step 2/7 : RUN echo "Hello docker!"
 ---> Running in 3d04694eef2c
Hello docker!
 ---> 6635ba3812c5
Removing intermediate container 3d04694eef2c
Step 3/7 : RUN echo "make dir"
 ---> Running in 4d09d0b04bcb
make dir
 ---> 30fc023d529e
Removing intermediate container 4d09d0b04bcb
Step 4/7 : RUN mkdir -p /data/db
 ---> Running in 4947b984c06f
 ---> 34a97a2eb15e
Removing intermediate container 4947b984c06f
Step 5/7 : RUN echo "expose port"
 ---> Running in 4f70ac65e998
expose port
 ---> a45dd54382f5
Removing intermediate container 4f70ac65e998
Step 6/7 : EXPOSE 8000
 ---> Running in 172ee2942a7e
 ---> c41f37ed56d8
Removing intermediate container 172ee2942a7e
Step 7/7 : RUN echo "completed!!!"
 ---> Running in a73429ff68c8
completed!!!
 ---> ba0d6edfd0db
Removing intermediate container a73429ff68c8
Successfully built ba0d6edfd0db
Successfully tagged sunsl/demo:latest
  1. 測試是否與群暉登錄權(quán)限有關(guān) (無效)
    手動測試全部正常,考慮是否是與權(quán)限有關(guān)。因不知道drone是否在啟動docker in docker是追加了權(quán)限,所以嘗試啟動群暉的root權(quán)限運行drone并設(shè)置docker的--privileged參數(shù) 。參考:群暉root密碼設(shè)置

4.想到一個問題,在手動測試docker in docker時的info信息如下:

admin@sunsl-dev:~$ sudo docker run -it --rm --link some-docker:docker docker info
……
Server Version: 17.07.0-ce-rc2 #版本號
Storage Driver: vfs            #這里才是重點
……
Kernel Version: 3.10.102
Operating System: Alpine Linux v3.6 (containerized)
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.719GiB
……

詳細(xì)測試記錄:docker run docker 手動測試記錄


看到區(qū)別了嗎?群暉存存格式是btrfs,而docker內(nèi)用的是vfs格式!??!跪了?。?!
然后....TMD繼續(xù)找資料,如何設(shè)置配置文件啊。

storage_driver
supports aufs, overlay or vfs drivers

.drone.yml

……省略其它pipeline部分
publish:
    image: plugins/docker
    registry: 192.168.123.202:55000
    repo: 192.168.123.202:55000/sunsl/demo
    tags : latest
    debug: true
    insecure: true         #私有倉庫未設(shè)置HTTPS需要啟用這個選項
    storage_driver: vfs    #出錯原因就是它
……省略其它pipeline部分
兩天的成果啊?。?!

參考:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件?Google Compute Engi...
    ahohoho閱讀 15,850評論 15 147
  • 一、Docker 簡介 Docker 兩個主要部件:Docker: 開源的容器虛擬化平臺Docker Hub: 用...
    R_X閱讀 4,521評論 0 27
  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,753評論 0 120
  • 寫這篇文章主要是為了今后畢業(yè)論文素材上的整理,同時對docker進(jìn)行鞏固溫習(xí)。大綱: docker簡介docker...
    胡圖仙人閱讀 7,768評論 2 96
  • 7點下班,想著回家運動,為了減肥,一杯咖啡。 9點,一直減肥,控制食欲,終暴飲暴食,為了減肥,兩杯咖啡。 玩了一天...
    嵇嵇閱讀 257評論 0 0

友情鏈接更多精彩內(nèi)容