[Docker]Docker-Compose

閱讀時間約 3 分鐘

Docker-Compose負責對container做快速編排。設定檔預設名稱為docker-compose.yml,在檔案中,可以透過COMPOSE_FILE或-f對設定進行定義。

想要將專案透過Docker-Compose部署,需要創建docker-compose.yml和Dockerfile。

建立Dockerfile

#取得golang
FROM golang:1.15

# 為image設定必要的環境變量
ENV GO115MODULE=on \
CGO_ENABLED=0 \
GOOS=linux \
GOARCH=amd64 \
GOPROXY="xxx"

# 移動到工作目錄:your_file_path
WORKDIR your_file_path

# 將程式碼複製到容器中
COPY . .

# 將我們的程式碼編譯成二進位執行檔 執行檔名為 app
RUN go build -o app .

# 聲明服務端口
EXPOSE 8080

# 啟動容器時執行的命令
CMD ["./app"]


建立docker-compose.yml

version: '3'
services:
mysql:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
container_name: mysql
hostname: mysqlServiceHost
network_mode: bridge
ports:
- "3306:3306"
#restart: always
restart: on-failure
volumes:
- ./mysql:/var/lib/mysql
- ./my.cnf:/etc/mysql/conf.d/my.cnf
- ./mysql/init:/docker-entrypoint-initdb.d/
- ./your_sql_name.sql:/docker-entrypoint-initdb.d/your_sql_name.sql
environment:
- MYSQL_ROOT_PASSWORD=your_root_password
- MYSQL_USER=your_user_name
- MYSQL_PASSWORD=your_password
- MYSQL_DATABASE=your_database_name
redis:
image: redis:3
container_name: redis
hostname: redisServiceHost
network_mode: bridge
restart: on-failure
ports:
- "6379:6379"

golang:
build: .
restart: on-failure
network_mode: bridge
ports:
- "8080:8080"
links:
- mysql
- redis
volumes:
- your_file_path:/go
tty: true


建立container

開啟終端機,進入到“your_file_path”後,執行“docker-compose up -d”建立container。

建構完成後,執行“docker-compose ps”,查看是否建立成功。



7會員
112內容數
嗨,我是一名程式設計師,會在這分享開發與學習紀錄。
留言0
查看全部
發表第一個留言支持創作者!
小黑與程式的邂逅 的其他內容
[Go]生成CSV
閱讀時間約 4 分鐘
[Go]訊息併發發送
閱讀時間約 1 分鐘
[Go]多通道監聽器
閱讀時間約 2 分鐘
[Go]產生亂數
閱讀時間約 1 分鐘
[Go]網頁爬蟲
閱讀時間約 3 分鐘
[Go]OAuth2.0
閱讀時間約 9 分鐘
你可能也想看
迎新活動「方格新手村」:新格友註冊加入方格子,知名日料吃到飽餐券送給你! 👉 還不是 vocus 的會員嗎?點此註冊,參與新手村活動 👈 近期站上也出現了不少新格友,為了歡迎各位的加入,「方格新手村」隨之登場! 即日起,只要是新註冊帳號於活動期間內發佈 3 則文章,就有機會抽獎獲得知名日料吃到飽餐券。原格友也可以一起同樂,我們準備了小任
Thumbnail
2024-06-21
閱讀心得:展現自我的生活態度|成熟大人的說話課我們每天都在說話,但說出的話合適嗎? Sunny最近讀完一本有關溝通的書籍。 這是由世紀奧美公關的創辦人「丁菱娟」所寫的書,書的全名《丁菱娟的成熟大人說話課:如何說,才能得體又不傷人?反擊時,如何堅定又有力量?任何情境都可用的38個溝通之道》。 會找這本書來看,主要是因為Sunny 近期發
Thumbnail
2024-07-10
防曬產品係數測試報告彙整(2024年)從2014年起,自己對於市售防曬產品的效能產生了濃厚的興趣。因為當時候發現不少產品的防曬係數其實標示是有問題的,像是原本應該是人體測試的SPF與PA數值,實際上沒有做,只用機器測試的數據來充當,但這兩者卻有很大的差異。像是防曬係數其實有強度、廣度與平均度三個面向需要一起判斷,但多數廠商並沒有完整標示
Thumbnail
Docker & VM 默默覺得,要解釋 docker 與 VM 在執行方式上的差異,可以用水族箱來說明。
2024-02-19
Docker 之建立與使用 Docker Image 上傳雲端前言 大家好上次我們教了如何建立自己的 Docker Image,今天我們要來教怎麼把自己做好的 Docker Image 上傳到 Docker Hub,如果以後自己在公司有搭建 Docker Registry,也可以用同樣方式上傳到公司的 Docker Registry 私有倉庫 登入 Doc
Thumbnail
2024-02-18
Docker 之 Docker 架構前言 上次我們針對 Docker 這樣容器化技術做了一點介紹,今天我們要來講解 Docker 架構,你是否發現在每次程式上伺服器的流程很麻煩呢 ? 是否發現你寫的程式在別的作業系統不能用呢 ? 如果你遇到這些問題,Docker 都可以幫助你解決這些問題 Docker 架構 在 Docker 這
Thumbnail
2024-01-09
Gitlab CI/CD 之 自動化佈署,製作 Docker Compose 佈署計劃書前言 大家好上次我們教了 Gitlab CI/CD 的 extends 如何使用,今天我們要來實際做一個真正佈署上線我們的服務,我們會分成兩個章節,第一部分先教大家怎麼寫 Docker Compose 佈署計畫書,第二部分教大家撰寫 CI/CD 自動化佈署流程計劃書 什麼是 Docker Com
Thumbnail
2023-12-17
【🔒 Python 先修班】建立不害怕犯錯的開發環境(Docker + Compose + Python + ...)限時好文,歡迎支持,讓阿Han給你最貼近業界的開發實戰教學… 為什麼不害怕犯錯很重要? 開發的過程中我們最害怕的就是我的程式把系統搞掛了…,這樣一來重新安裝作業系統的成本非常高,包括還原也是,我想這會阻礙我們學習的動力,那究竟有什麼樣的技術能夠讓我們開發的同時也能夠勇於犯錯呢? 答案就是「容器化」
Thumbnail
2023-08-19
CentOS 安裝docker 和 docker-compose簡介 因常會在新機器跑container,藉此紀錄安裝過程,順便寫下腳本安裝懶人包 安裝docker 檢查系統中是否已經安裝了docker 執行:ps -ef |grep docker 如上圖所示,說明系統中並沒有安裝docker 添加docker-ce倉庫 安裝yum倉庫管理工具 配置docker
Thumbnail
2023-04-18
【Docker】初玩Docker 進入官方網站,根據自己電腦的作業系統,選擇適合的安裝檔。 切記,注意一下基本的配備要求
Thumbnail
2023-02-23
CentOS 7 安裝 docker-compose1. 下載stable release的docker-compose binary: curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)"
2020-11-24
[Docker]Docker安裝與指令程式設計師難免會遇到要自已架環境的時候,但是遇到問題時,總不能一直安裝、刪除,這時候可以用docker,先記錄一下安裝與指令 這裡使用Docker Desktop,當然也可以使用command line輸入就好 照上列網址下載之後,並且安裝完成 就可以使用command line 開始操作 如果覺得
Thumbnail
2020-05-15