Docker鏡像構建-Aliyun詳解
對于搞編程開發(fā)的伙伴來說,我一直都推薦使用 Mac 電腦,因為 Windows 電腦除了相對省點錢,其他的什么也不??!為啥?那我 Windows 電腦推溝里?
其實到也不是 Windows 不好,只是在編程開發(fā)中的環(huán)境配置,要有太多的額外的兼容問題。因為 Windows 是一個系統(tǒng),這個系統(tǒng)被各個廠商使用,安裝到自己家的電腦上。因此一個軟件安裝后,不同的機器,都可能在一些細節(jié)功能上,有自己的差異化處理方案。就像 Docker 安裝,Mac 電腦直接安裝即可,Windows 不是安裝虛擬機,就是搞個 wsl2,不少小白基本就在這崩潰了。
相對說,Mac 電腦就好的多,因為人家的系統(tǒng)只給自己家的電腦使用。所以各類軟件的安裝和使用也不會有那么多的適配問題了。另外 Mac 電腦也等同于是在 Linux 上做開發(fā),你的所有編程中使用的命令,幾乎就是無差別的可以在云環(huán)境 Linux 執(zhí)行。因此,Mac 電腦除了不省錢,其他的都??;省時、省心、省力。
不過,Windows 電腦也不能推溝里呀!所以,我們要想點辦法,讓一些如 Docker 的環(huán)境安裝和鏡像構建,讓外部系統(tǒng)解決。不就可以了噻!
一、DevOps 流水線
DevOps 流水線,是一種可持續(xù)集成交付的手段。用戶可以使用流水線自定義編排項目發(fā)布過程中所涉及的代碼打包、單元測試、自動部署等各項階段。 通過一系列自動化任務的組合解決日常開發(fā)工作中繁瑣而重復的任務。

官網(wǎng)(JD):https://docs.jdcloud.com/cn/devops/application-scenarios(opensnew window)
市面上也有很多的免費的可持續(xù)交付工具,方便我們自己部署項目使用。如 Github Actions (opens new window)、buddy.works (opens new window)、Jenkins (opens new window),這些已經在 bugstack.cn (opens new window)編程路書(發(fā)布部署)中分享。今天再分享一個阿里云的 DevOps 流水線操作,實際使用體驗效果還不錯。
二、云效工作臺介紹
本次案例會涉及到使用阿里云效平臺的 代碼管理、流水線配置、容器鏡像
1. 代碼&流水線

- 地址:https://devops.aliyun.com/workbench(opens new window)
- 說明:用于管理工程代碼和配置流水線。你可以提交本地代碼,也可以把其他- 倉庫的代碼導入到代碼管理中,如;Github、Gitee、Gitlab,其他的也可以通過 url 導入。
2. 容器鏡像服務
2.1 容器申請

地址:https://cr.console.aliyun.com/cn-hangzhou/instance/dashboard(opensnew window)
- 說明:容器鏡像,相當于代理的 Docker Hub (opens new window)可以把我們通過流水線構建的項目(SpringBoot/React/…)構建的鏡像,放到容器鏡像服務中。之后就可以在其他云環(huán)境或者本地環(huán)境拉取使用了。
2.2 新建服務


- 這里要新建一個鏡像名稱,xfg-dev-tech-aliyun-workbench 的鏡像。這個鏡像為后續(xù)的流水線構建使用。
- 創(chuàng)建的時候,要選擇對應的倉庫。可以是 Codeup 的阿里云代碼庫,也可以是 Github 關聯(lián)地址的倉庫。
- 再往下開始平臺,你需要注冊一個云校平臺和容器鏡像服務。
三、上傳代碼庫
1. 案例工程

# 基礎鏡像 openjdk:8-jre-slim 代理地址;registry.cn-hangzhou.aliyuncs.com/xfg-studio/openjdk:8-jre-slim FROM registry.cn-hangzhou.aliyuncs.com/xfg-studio/openjdk:8-jre-slim # 作者 MAINTAINER xiaofuge # 配置 ENV PARAMS="" # 時區(qū) ENV TZ=PRC RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 在容器內創(chuàng)建目錄/home/project 用于存放應用程序和相關文件 RUN mkdir -p /home/project # 設置工作目錄為/home/project,即后續(xù)的命令都在這個工作目錄下執(zhí)行。 WORKDIR /home/project # 添加應用 ADD xfg-dev-tech-app/target/xfg-dev-tech-app.jar /home/project/xfg-dev-tech-app.jar ## 在鏡像運行為容器后執(zhí)行的命令 ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /home/project/xfg-dev-tech-app.jar $PARAMS"]
- 腳本:注意配置的腳本信息,如果你是新的其他的工程,可以參考配置。
2. 上傳項目
把案例代碼上傳到阿里云代碼庫的方式有很多,可以從 Github 導入,也可以先把代碼拉取到本地,在從本地上傳到阿里云代碼庫。但兩個方式都建議把代碼拉取到本地代碼一份,方便進行修改。
2.1 導入代碼

- 首先,進入案例工程地址(Github),點擊 Fork 克隆到自己的倉庫中。
- 之后,在阿里云效點擊導入倉庫,這里可以選擇從 Github 導入。導入的時候,需要填寫 Access Token。創(chuàng)建地址:https://github.com/settings/tokens(opens new window)
- 最后,在確認后會展示你的 Github 倉庫列表,選擇要導入的工程即可。
2.2 上傳代碼

- 首先,開始操作之前,你要把提供的案例代碼拉取到本地。
- 之后,在云效代碼庫,新建一個代碼庫。新建后可以獲得一個 https 提交代碼庫的地址。另外,要注意你還要在云效倉庫個人設置里,創(chuàng)建一個,個人訪問令牌(地址:https://account-devops.aliyun.com/settings/profile (opens new window))。
- 最后,在自己 Intellij IDEA 菜單欄上,點擊 Git 選擇 Manage Remotes 添加阿里云效倉庫地址,之后就可以把代碼提交到阿里云效了。
3. 添加流水線
3.1 構建操作

- 如圖,配置構建信息。注意,?? 制品中包含打包路徑的目錄。
3.2 添加步驟;Docker鏡像構建

- 添加新的步驟,選擇構建并推送至ACR(個人版)注意配置路徑正確。
3.3 添加步驟;郵件通知

- 添加一個郵件通知的插件,構建后會接收到郵件。
4. 構建鏡像
4.1 執(zhí)行構建

- 點擊運行,之后就可以構建鏡像了。如果哪個節(jié)點失敗了,可以點日志查看失敗原因。
4.2 構建結果
4.2.1 郵件通知

- 你會收到一個來自云效構建的通知郵件。代表著構建的結果。
4.2.2 查看鏡像

- 構建完成鏡像后,可以進入容器鏡像服務中找到鏡像。地址:https://cr.console.aliyun.com/cn-hangzhou/instance/repositories(opens new window)
- 之后還可以通過公網(wǎng)地址拉取鏡像,命令:docker pull registry.cn-hangzhou.aliyuncs.com/fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0
4.2.3 拉取鏡像

[root@hcss-ecs-decd ~]# docker pull registry.cn-hangzhou.aliyuncs.com/fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0 1.0.0: Pulling from fuzhengwei/xfg-dev-tech-aliyun-workbench 1efc276f4ff9: Already exists a2f2f93da482: Already exists 1a2de4cc9431: Already exists d2421c7a4bbf: Already exists 64e0330ea35f: Pull complete 4da07e374896: Pull complete 4f4fb700ef54: Pull complete eb9d0e194679: Pull complete Digest: sha256:a7af08fff4ea0b76184a2fad7e7ca639ab4a9ad16573480b526eda672ed8a483 Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0 registry.cn-hangzhou.aliyuncs.com/fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0 [root@hcss-ecs-decd ~]# docker tag registry.cn-hangzhou.aliyuncs.com/fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0 fuzhengwei/xfg-dev-tech-aliyun-workbench:1.0.0 [root@hcss-ecs-decd ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE fuzhengwei/xfg-dev-tech-aliyun-workbench 1.0.0 df740ba425bb 24 minutes ago 221MB
- 鏡像構建完成后,就可以在云服務器上拉取鏡像了。
- 好啦,到這你就可以愉快的完善了,前端構建鏡像也是一樣的操作。
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Docker運行Web服務實戰(zhàn)之Tomcat的詳細過程
Tomcat是由Apache軟件基金會下屬的Jakarta項目開發(fā)的一個Servlet容器,按照Sun Microsystems提供的技術規(guī)范,實現(xiàn)了對Servlet和Java Server Page(JSP)的支持,這篇文章主要介紹了Docker運行Web服務實戰(zhàn)之Tomcat的詳細過程,需要的朋友可以參考下2022-08-08

