那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用Docker搭建本地開發環境

我快閉嘴 ? 來源:嵌入式悅翔園 ? 作者:嵌入式悅翔園 ? 2022-09-22 14:29 ? 次閱讀

本地開發之痛苦

在開發之前,首先你需要安裝各種開發工具和服務支持到你的開發環境當中,可能會出依賴問題環境變量問題端口沖突,經編譯庫問題等等。

開發途中,可能你又需要依賴一些其他的服務,你最好祈禱不會出問題,可能你又要重寫來配置你的環境,因為你的所有的依賴服務都在你的唯一的工作空間里面。

如果你的伙伴的操作系統不統一,可能你還會遇到一些不同元字符解析不一致的問題。

然后上線之前,可能你在本地開發調試都可以完美運行,一但部署到服務器,就會出現各種問題。因為大多數情況下,我們的開發環境和生產環境并不相同。

可能你下次又有要用到一個新的開項目的開發環境。你又要重復面對上面這些問題.

你不得不去審視,你要話費大量的時間用在搭建環境當中來。

什么是Docker

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。對我們而言,我覺得只需要把他理解成一個便攜的應用容器 即可

Docker本地開發環境的好處

試錯

對開發者而言,每天會催生出的各式各樣的新技術都需要嘗試,然而開發者卻不太可能為他們一一搭建好環境并進行測試。時間非常寶貴,正是得益于 Docker,讓我們有可能在一條或者幾條命令內就搭建完環境,而且這個環境大到一個特定版本的操作系統,小到一個軟件。Docker 有一個傻瓜化的獲取軟件的方法,Docker后臺會自動獲得環境鏡像并且運行環境。

統一開發和生產環境

對于一般的小公司來說,搭建一個公用的開發環境是一件不那么劃算的事情。那么就可以用 Docker 來統一開發環境,因為不管你用的是 Windows、Mac 還是 Ubuntu。如果生產環境也使用的 Docker 的話,你甚至可以直接打包一套環境,直接丟上去就可以運行了,再也不用擔心開發-生產環境之間的差異了。

高性能

虛擬機的粒度是虛擬出的機 ,而 Docker 的粒度則是被限制的應用 ,相比較而言 Docker 的內存占用更少,更加輕量級,性能也更優。

而秒級的啟動,也可以讓我們啟動電腦時候,開發環境的運行是無感知的。

成果展示

我們可能經常要給用戶或者是同事展示一樣功能的,但是搭建演示環境的過程卻是非常麻煩的。現在可以直接將我們的鏡像打包丟過去,而不必去做任何環境配置的工作,同時也不必擔心他們的環境配置會導致我們的產品無法運行。

安裝Docker

在mac平臺下,就是去下載一個dmg的安裝文件。下載好了之后,雙擊,然后拖入就可以了,windows應該也是類似的。

就是安裝qq一樣簡單,傻瓜式的。

附上dockerhub上的下載鏈接:

https://hub.docker.com/search/?type=edition&offering=community&q=

成功之后屬于docker version如果出來版本信息就是安裝成功,類似如下

Client:DockerEngine-Community
Version:18.09.0
APIversion:1.39
Goversion:go1.10.4
Gitcommit:4d60db4
Built:WedNov700432018
OS/Arch:darwin/amd64
Experimental:false

Server:DockerEngine-Community
Engine:
Version:18.09.0
APIversion:1.39(minimumversion1.12)
Goversion:go1.10.4
Gitcommit:4d60db4
Built:WedNov700002018
OS/Arch:linux/amd64
Experimental:true

安裝docker-compose

一般來說,mac安裝docker之后就會攜帶docker-compose。

其他平臺,附上下載鏈接:https://github.com/docker/compose/releases

安裝完成之后可以輸入命令檢測

?~docker-composeversion
docker-composeversion1.23.2,build1110ad01
docker-pyversion:3.6.0
CPythonversion:3.6.6
OpenSSLversion:OpenSSL1.1.0h27Mar2018

如果沒有出現版本相關信息,可以嘗試再次安裝

下載laradock

laradock的項目地址是https://github.com/laradock/laradock 我們找一個地方clone下來即可。

我這里是在我的用戶目錄下面新建了一個Docker目錄,然后clone了項目下來。

配置env文件

拷貝example成.env

cpenv-exampleenv

.env文件中APP_CODE_PATH_HOST是本地路徑APP_CODE_PATH_CONTAINER是遠程映射路徑,看需求修改,大多數情況下是不需要的

如果有調試代碼的需求,也可以將PHP_FPM_INSTALL_XDEBUGWORKSPACE_INSTALL_XDEBUG兩個選項打開

如果還有其他的需求,可以在.env里面搜索,里面已經將大多數配置項都給獨立出來了

運行容器

進入到laradock的工作目錄下面,就是clone的項目的根目錄我的工作目錄就是~/Docker/laradock。

然后運行如下命令

docker-composeup-dnginxmysql

就會看到在自動執行build操作,并且build完了之后自動后臺啟動了如下容器

  • nginx

  • php-fpm

  • workspace

  • mysql

那是因為php-fpm和workspace還有docker-in-docker是隨nginx一并啟動的

所以實際上

docker-composeup-dnginxmysql

docker-composeup-dnginxworkspacephp-fpmmysql

這兩條命令的效果是一樣的,可以都帶上,也可以不寫。

up命令在第一次啟動的時候實際上就是build + start的組合,如果容器不存在,那么就build一個容器,并且啟動服務,如果容器存在那么直接啟動服務,大概就是這么個意思 -d的意思是后臺運行

配置web項目

以下是我laravel項目的部分配置

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=root
......

注意,數據庫主機必須得是別名才可以,如果DB_CONNECTION這個地方輸入172.0.0.1或者是localhost都是會連接失敗的。

在其它的項目中也必須是這樣的,配置數據庫鏈接,redis,或者MemCache鏈接都必須設置成具體的別名。或者你說我找到各個容器的ip,可以嘛。可以,但是并不建議這樣做,因為ip是會變動的。

具體別名可以參考./docker-compose.yml文件中的設置

這個主要的技術實現應該是用了docker的虛擬網橋技術.

配置宿主機的host

因為,往往我們訪問的時候,是通過宿主機上面的瀏覽器發送請求的,所以,配置宿主機上面的host必不可少。

vim/etc/hosts

我這里加入一條我自己設置的虛擬域名

127.0.0.1blog.test

然后保存,刷新下host。

配置nginx

進入到./laradock/nginx/sites文件夾,然后ll一下,我們會發現,laradock已經幫我們放了好多列舉的文件進來

app.conf.exampledefault.conflaravel.conf.examplesymfony.conf.example

根據需求拷貝一份,然后修改一下就可以了,都不是很難,由于我們本地是laravel開發的博客項目,所以我就直接拷貝laravel.conf.example,然后使用vim打開

cplaravel.conf.exampleblog.confvimblog.conf

打開后的內容...

server{

listen80;
listen[::]:80;

#Forhttps
#listen443ssl;
#listen[::]:443sslipv6only=on;
#ssl_certificate/etc/nginx/ssl/default.crt;
#ssl_certificate_key/etc/nginx/ssl/default.key;

server_namelaravel.test;
root/var/www/laravel/public;
indexindex.phpindex.htmlindex.htm;

location/{
try_files$uri$uri//index.php$is_args$args;
}

location~.php${
try_files$uri/index.php=404;
fastcgi_passphp-upstream;
fastcgi_indexindex.php;
fastcgi_buffers1616k;
fastcgi_buffer_size32k;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
#fixestimeouts
fastcgi_read_timeout600;
includefastcgi_params;****

我們會發現,如果沒有特殊需求的話,這個里面大多數地方我們并不需要修改。我們只需要關注server_name和root這兩個參數,把這個里面的laravel換成我們項目名就可以了,這里我們換成blog

下面是修改后的內容

server{

listen80;
listen[::]:80;

#Forhttps
#listen443ssl;
#listen[::]:443sslipv6only=on;
#ssl_certificate/etc/nginx/ssl/default.crt;
#ssl_certificate_key/etc/nginx/ssl/default.key;

server_nameblog.test;
root/var/www/blog/public;
indexindex.phpindex.htmlindex.htm;

location/{
try_files$uri$uri//index.php$is_args$args;
}

location~.php${
try_files$uri/index.php=404;
fastcgi_passphp-upstream;
fastcgi_indexindex.php;
fastcgi_buffers1616k;
fastcgi_buffer_size32k;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
#fixestimeouts
fastcgi_read_timeout600;
includefastcgi_params;

訪問

輸入 url http://blog.test/,瀏覽器返回結果:

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Web
    Web
    +關注

    關注

    2

    文章

    1269

    瀏覽量

    69730
  • 容器
    +關注

    關注

    0

    文章

    499

    瀏覽量

    22120
  • Docker
    +關注

    關注

    0

    文章

    492

    瀏覽量

    11963

原文標題:使用 Docker 搭建本地開發環境!真心強啊

文章出處:【微信號:嵌入式悅翔園,微信公眾號:嵌入式悅翔園】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】搭建基于Linux的Docker開發環境

    安裝包和虛擬機鏡像,使得環境搭建更為方便。 由于在論壇看到的大部分開發者使用的環境都是在Windows上安裝Docker或虛擬機,這樣的好
    發表于 01-23 10:07

    如何在win10家庭版上用docker快速搭建鴻蒙開發環境

    # 如何在win10家庭版上用docker快速搭建鴻蒙開發環境 (Building the Development Environment for HarmonyOS by
    發表于 01-26 22:00

    嵌入式linux開發環境該如何去搭建

    嵌入式linux開發環境搭建Docker版,基于iTop 4412開發板)文章目錄嵌入式linux開發
    發表于 11-04 08:09

    介紹一下linux環境docker的使用流程

    的含義。Docker 是一種引擎,基于這個引擎,開發者能讓他們開發的應用處于一個有隔離性的、可移植性的容器中,以便于發布于各種機器中而無需考慮兼容性問題。開發者可以使用
    發表于 04-27 15:03

    本地測試環境搭建

    本文主要介紹了本地測試環境搭建搭建一個本地測試環境無疑是個明智的選擇,再結合GitHub、Jen
    的頭像 發表于 01-31 16:01 ?2906次閱讀
    <b class='flag-5'>本地</b>測試<b class='flag-5'>環境</b><b class='flag-5'>搭建</b>

    如何搭建鴻蒙開發環境

    開發某一個平臺的程序,那么首先要搭建本地開發環境,那么如何搭建鴻蒙
    的頭像 發表于 02-24 11:25 ?3855次閱讀
    如何<b class='flag-5'>搭建</b>鴻蒙<b class='flag-5'>開發</b><b class='flag-5'>環境</b>

    嵌入式linux開發環境搭建Docker版,基于iTop 4412開發板)

    嵌入式linux開發環境搭建Docker版,基于iTop 4412開發板)文章目錄嵌入式linux開發
    發表于 11-01 16:57 ?0次下載
    嵌入式linux<b class='flag-5'>開發</b><b class='flag-5'>環境</b><b class='flag-5'>搭建</b>(<b class='flag-5'>Docker</b>版,基于iTop 4412<b class='flag-5'>開發</b>板)

    在linux上進行單片機開發(使用docker搭建環境)

    前言以前每次換一臺電腦或重裝系統又要重新搭建一次環境, 搭建環境是非常枯燥的事情, 使用docker搭建
    發表于 11-23 16:36 ?11次下載
    在linux上進行單片機<b class='flag-5'>開發</b>(使用<b class='flag-5'>docker</b><b class='flag-5'>搭建</b><b class='flag-5'>環境</b>)

    Docker_FrontEnd Docker搭建前端開發環境

    ./oschina_soft/Docker_FrontEnd.zip
    發表于 05-12 11:28 ?0次下載
    <b class='flag-5'>Docker</b>_FrontEnd <b class='flag-5'>Docker</b><b class='flag-5'>搭建</b>前端<b class='flag-5'>開發</b><b class='flag-5'>環境</b>

    Docker高效搭建本地開發環境教程分享 1

    開發之前,首先你需要安裝各種開發工具和服務支持到你的開發環境當中,可能會出依賴問題,環境變量問題,端口沖突,經編譯庫問題等等。
    的頭像 發表于 02-03 15:49 ?545次閱讀

    Docker 高效搭建本地開發環境教程分享 2

    開發之前,首先你需要安裝各種開發工具和服務支持到你的開發環境當中,可能會出依賴問題,環境變量問題,端口沖突,經編譯庫問題等等。
    的頭像 發表于 02-03 15:49 ?666次閱讀

    Docker搭建更酷的本地開發環境

    以前要在本地跑一些有意思的工程和實驗,都需要通過在本地裝上一大堆軟件來實現。最近發現有一種更酷的方式:Docker。 用 Docker本地
    的頭像 發表于 05-05 10:06 ?737次閱讀
    用<b class='flag-5'>Docker</b><b class='flag-5'>搭建</b>更酷的<b class='flag-5'>本地</b><b class='flag-5'>開發</b><b class='flag-5'>環境</b>

    基于Docker搭建本地開發環境

    以前要在本地跑一些有意思的工程和實驗,都需要通過在本地裝上一大堆軟件來實現。最近發現有一種更酷的方式:Docker
    發表于 06-13 16:16 ?746次閱讀
    基于<b class='flag-5'>Docker</b><b class='flag-5'>搭建</b><b class='flag-5'>本地</b><b class='flag-5'>開發</b><b class='flag-5'>環境</b>

    怎么搭建和管理自己的環境

    ? 運行你的第一個容器 以前要在本地跑一些有意思的工程和實驗,都需要通過在本地裝上一大堆軟件來實現。最近發現有一種更酷的方式:Docker。 用Docker
    的頭像 發表于 06-30 10:06 ?450次閱讀
    怎么<b class='flag-5'>搭建</b>和管理自己的<b class='flag-5'>環境</b>

    php運行環境本地測試地址是

    PHP運行環境本地測試地址是指在本地計算機上搭建的用于測試和運行PHP代碼的的環境地址。搭建該運
    的頭像 發表于 12-04 15:25 ?814次閱讀
    东方太阳城二手房| 太阳城百家乐客户端| 真钱百家乐送钱| 百家乐佛牌| 威尼斯人娱乐网可信吗| 台州星空棋牌下载| 霞浦县| 百家乐官网服务区| 百家乐赌场国际| 百家乐保证赢| 大发888娱乐场下载iypu rd| 优博娱乐网| 网上赌百家乐官网正规吗| 百家乐官网游戏机技| 百家乐视频计牌器| 威尼斯人娱乐城图| 博彩网58娱乐城| 百家乐官网投注系统| 百家乐官网庄闲桌| 百家乐真人游戏娱乐| 德州扑克大赛视频| 百家乐官网大眼仔用法| 丽星百家乐官网的玩法技巧和规则 | 大发888官方sscptdf88yb| 百家乐官网怎么打啊| 唐人街百家乐官网的玩法技巧和规则| 澳门百家乐先赢后输| 大发888游戏下载| 真人百家乐官网娱乐好玩| 百家乐网上技巧| 太阳城网上| 调兵山市| 博彩百家乐官网五2013124预测 | 试玩区百家乐1000| 博彩资讯网| 百家乐官网平台在线| 百家乐官网7人桌布| 大发888娱乐城客户端迅雷下载| 百家乐官网游戏类型| 百家乐游戏作弊| 至尊百家乐|