摘要:工欲善其事必先利其器開始進行開發之前,都需要搭建好基本的開發環境個人用到的有搭建環境不同的方式使用一個個安裝腳本一鍵安裝包源碼編譯上面的解決方案都有一個共同的缺點一旦系統重裝,需要重新安裝配置有多臺電腦時,開發環境版本容易不一致沒有版本控制
工欲善其事必先利其器
開始進行web開發之前,都需要搭建好基本的開發環境.
個人用到的有nginx、redis、mysql、node.js.
搭建環境不同的方式
使用apt(ubuntu)、brew(mac os)一個個安裝
腳本: LNMP一鍵安裝包
源碼編譯
上面的解決方案都有一個共同的缺點
一旦系統重裝,需要重新安裝、配置(有多臺電腦時,開發環境版本容易不一致)
沒有版本控制系統,軟件配置維護麻煩
更好的解決方案 —— docker基于 docker(18.03以上)搭建nginx、 redis 、mysql 服務。
項目結構. ├── .env # 默認為dev的環境變量 ├── .gitignore ├── README.md ├── container # 不同容器的配置文件 │?? ├── mysql │?? │?? └── docker-compose.yml │?? ├── nginx │?? │?? ├── conf │?? │?? ├── docker-compose.prod.yml │?? │?? └── docker-compose.yml │?? └── redis │?? └── docker-compose.yml └── prod # prod的環境變量 └── .env
docker-compose 在運行時會使用當前目錄下的.env文件,
并且不支持指定env文件,所以需要多個不同環境時,只能在對應文件夾下建立.env文件
通過.env文件配置整個項目所需要的環境變量
# file .env # 項目名稱 COMPOSE_PROJECT_NAME=site # compose文件 COMPOSE_FILE=container/nginx/docker-compose.yml:container/mysql/docker-compose.yml:container/redis/docker-compose.yml # mysql config MYSQL_ROOT_PASSWORD=123456 MYSQL_DATABASE=demo # redis config REDIS_PASSWORD=123456 # 自定義環境變量 本地服務器 IP SITE_IP=host.docker.internal # host.docker.internal需要18.03以上版本
以nginx的 docker-compose.yml 文件為例:
${SITE_IP}將被替換成host.docker.internal, $${SITE_IP}將不會被替換
version: "3" services: nginx: image: nginx volumes: - ./conf/dev.template:/etc/nginx/conf.d/dev.template ports: - "80:80" environment: - SITE_IP=${SITE_IP} command: /bin/bash -c "envsubst "$${SITE_IP}"< /etc/nginx/conf.d/dev.template > /etc/nginx/conf.d/dev.conf && exec nginx -g "daemon off;"" networks: - default - network_site networks: network_site: driver: bridge
其他鏡像的配置可以從dockerhub查看redis、mysql
啟動全部// dev模式 docker-compose up // prod模式,使用 prod下的.env文件 cd ./prod && docker-compose up多帶帶啟動
docker-compose up nginx docker-compose up mysql docker-compose up redis停止
# 停止某個服務 docker-compose stop nginx # 停止全部 docker-compose stop
具體配置請從github倉庫查看
通過使用docker,我們只需要一個repository存放配置, 便可以在多臺電腦上迅速安裝環境.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27684.html
摘要:用于機器學習人工智能數據分析的基于云計算的工具日前增多。亞馬遜公司創建了,以簡化使用其機器學習工具的工作。用于機器學習、人工智能、數據分析的基于云計算的工具日前增多。其中的一些應用是在基于云計算的文檔編輯和電子郵件,技術人員可以通過各種設備登錄中央存儲庫,并在遠程位置,甚至在路上或海灘上進行工作。云計算可以處理文件備份和同步,簡化工作流程。數據分析是很多組織在云計算平臺進行的一項主要計算工作...
摘要:希爾排序希爾排序這個名字,來源于它的發明者希爾,也稱作縮小增量排序,是插入排序的一種更高效的改進版本。我們可以發現,當區間為的時候,它使用的排序方式就是插入排序。 冒泡排序 冒泡排序無疑是最為出名的排序算法之一,從序列的一端開始往另一端冒泡(你可以從左往右冒泡,也可以從右往左冒泡,看心情),依次比較相鄰的兩個數的大小(到底是比大還是比小也看你心情)。 showImg(https://s...
摘要:是編程里面非常流行的語言,到現在為止,已經誕生了幾十種框架,但是在國內以下三個框架使用率才是最高的。跨站請求偽造是一種常見的攻擊手段,但是有了可以將這種攻擊拋之門外。 php是WEB編程里面非常流行的語言,到現在為止,已經誕生了幾十種PHP框架,但是在國內以下三個框架使用率才是最高的。ThinkPHP showImg(https://segmentfault.com/img/bVL1s...
摘要:面試從開始準備到一直到年月份,面試現在這家公司,大概經歷了年半的時間。后邊也證明自己選擇是對的。,,,,等也是測試必備的工具技能,這些雖然不是很難,但也是常用必備的技能。 ...
摘要:從公司層面講,也不能以產品進行團隊劃分,比如騰訊,可以用一個游戲劃分一個團隊,但是在,除了大產品模塊的劃分比如桌面端產品,端產品,其他業務產品,其實沒有具體的產品團隊,更多的是開發團隊,而開發團隊內部才劃分到具體的產品線上。 從大學開始接觸Web開發,到現在已經是第9個年頭了,但是感覺自己才剛剛開始入門。特別是開發模式(這個稱法待議),不同的公司不一樣,團隊結構,團隊合作方式都有很大的...
閱讀 4293·2021-09-24 09:47
閱讀 1184·2021-09-03 10:33
閱讀 2063·2019-08-30 11:13
閱讀 1029·2019-08-30 10:49
閱讀 1753·2019-08-29 16:13
閱讀 2046·2019-08-29 11:28
閱讀 3089·2019-08-26 13:31
閱讀 3631·2019-08-23 17:14