博客 / 列表

楊帆 - Docker修改已有鏡像,並打包生成新的鏡像

通過Docker將基礎鏡像進行修改,並打包成為新的基礎鏡像。 本文以golang 1.23.2-runtime鏡像為例,在新的鏡像文件裏面裏面生成ssh公鑰和私鑰,再使用新鏡像生成容器的時候可以直接通過git進行拉取代碼,無需再次生成id_rsa和id_rsa.pub 。 1.查看本地是否有基礎鏡像 `docker images` 2.根據golang 1.23.2-runtime鏡像生成容器

Docker , jenkins

楊帆 - 多台服務器jenkins+自建gitlab+docker搭建項目自動化部署

一、場景: 公司有三台服務器,一台是測試服務器,一台是正式服務器,還有一台是內部服務器。測試服務器就是公司研發用來調試的服務器,正式服務器是生產環境的服務器,內部服務區是用來部署公司gitlab、jenkins、api接口文檔等服務。 目前想通過內部服務器部署jenkins+docker實現自動化部署功能,要想實現不同服務器的互通,最好通過配對的ssh公鑰和秘鑰實現,既不用輸入密碼也能保證服務的安

dockerfile , jenkins

楊帆 - Jenkins SSH 認證失敗問題 (`com.jcraft.jsch.JSchException: Auth fail`)

問題背景 在 Jenkins 與目標服務器之間通過 SSH 進行自動化部署時,遇到以下錯誤: com.jcraft.jsch.JSchException: Auth fail 核心原因分析 原因分類 具體表現 底層機制説明 密鑰格式不兼容 -----BEGIN OPENSSH PRIVATE KEY----- 頭部的密鑰 Jen

Docker , jenkins

楊帆 - 使用Dockerfile搭建ubuntu20.04 + php8.2鏡像

編寫Dockerfile 最近在部署項目事,想做一個基於ubuntu20.04,搭建nginx + php8.*的鏡像。但是在製作的過程中遇到了很多坑,記錄下來供後續參考學習。 修改鏡像過程大概分為了6個模塊: 模塊一:對ubuntu 20.04官方鏡像重新構造。 模塊二:在基礎鏡像添加php8.*的源 模塊三:安裝nginx、php以及相關依賴。 模塊四:設置nginx、php配置文件

dockerfile , Nginx , php8

楊帆 - golang goroutine 協程原理

goroutine簡介 goroutine的本質是協程,是實現並行計算的核心。goroutine使用方式非常的簡單,只需使用go關鍵字+方法或者方法模塊即可啓動一個協程。並且它是處於異步方式運行,你不需要等它運行完成以後在執行以後的代碼。 go func()//通過go關鍵字啓動一個協程來運行函數 goroutine內部原理 概念介紹 在進行實現原理之前,瞭解下一些關鍵性術語的概念。 併發 一個

goroutine , go

楊帆 - mac 安裝item2 + oh my zsh

最近電腦換了系統,很多配置需要重新來過。mac使用久了,習慣使用控制枱來做很多操作。然而,mac系統自帶的控制枱實屬難看,於是使用iterm2以及oh-my-zsh插件來美化控制枱。 1.展示安裝之後的效果圖。 在寫安裝過程的時候,先展示安裝效果,效果圖如下。 效果還可以的的吧,廢話不多説,直入主題。 2.安裝iterm2 安裝iterm2比較簡單,直接使用brew安裝就可以了。 `bre

iterm2 , macos