在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用Docker搭建本地開發(fā)環(huán)境

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

本地開發(fā)之痛苦

在開發(fā)之前,首先你需要安裝各種開發(fā)工具和服務(wù)支持到你的開發(fā)環(huán)境當(dāng)中,可能會(huì)出依賴問題環(huán)境變量問題端口沖突,經(jīng)編譯庫問題等等。

開發(fā)途中,可能你又需要依賴一些其他的服務(wù),你最好祈禱不會(huì)出問題,可能你又要重寫來配置你的環(huán)境,因?yàn)槟愕乃械囊蕾嚪?wù)都在你的唯一的工作空間里面。

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

然后上線之前,可能你在本地開發(fā)調(diào)試都可以完美運(yùn)行,一但部署到服務(wù)器,就會(huì)出現(xiàn)各種問題。因?yàn)榇蠖鄶?shù)情況下,我們的開發(fā)環(huán)境和生產(chǎn)環(huán)境并不相同。

可能你下次又有要用到一個(gè)新的開項(xiàng)目的開發(fā)環(huán)境。你又要重復(fù)面對上面這些問題.

你不得不去審視,你要話費(fèi)大量的時(shí)間用在搭建環(huán)境當(dāng)中來。

什么是Docker

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

Docker本地開發(fā)環(huán)境的好處

試錯(cuò)

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

統(tǒng)一開發(fā)和生產(chǎn)環(huán)境

對于一般的小公司來說,搭建一個(gè)公用的開發(fā)環(huán)境是一件不那么劃算的事情。那么就可以用 Docker 來統(tǒng)一開發(fā)環(huán)境,因?yàn)椴还苣阌玫氖?Windows、Mac 還是 Ubuntu。如果生產(chǎn)環(huán)境也使用的 Docker 的話,你甚至可以直接打包一套環(huán)境,直接丟上去就可以運(yùn)行了,再也不用擔(dān)心開發(fā)-生產(chǎn)環(huán)境之間的差異了。

高性能

虛擬機(jī)的粒度是虛擬出的機(jī) ,而 Docker 的粒度則是被限制的應(yīng)用 ,相比較而言 Docker 的內(nèi)存占用更少,更加輕量級,性能也更優(yōu)。

而秒級的啟動(dòng),也可以讓我們啟動(dòng)電腦時(shí)候,開發(fā)環(huán)境的運(yùn)行是無感知的。

成果展示

我們可能經(jīng)常要給用戶或者是同事展示一樣功能的,但是搭建演示環(huán)境的過程卻是非常麻煩的。現(xiàn)在可以直接將我們的鏡像打包丟過去,而不必去做任何環(huán)境配置的工作,同時(shí)也不必?fù)?dān)心他們的環(huán)境配置會(huì)導(dǎo)致我們的產(chǎn)品無法運(yùn)行。

安裝Docker

在mac平臺(tái)下,就是去下載一個(gè)dmg的安裝文件。下載好了之后,雙擊,然后拖入就可以了,windows應(yīng)該也是類似的。

就是安裝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之后就會(huì)攜帶docker-compose。

其他平臺(tái),附上下載鏈接: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

如果沒有出現(xiàn)版本相關(guān)信息,可以嘗試再次安裝

下載laradock

laradock的項(xiàng)目地址是https://github.com/laradock/laradock 我們找一個(gè)地方clone下來即可。

我這里是在我的用戶目錄下面新建了一個(gè)Docker目錄,然后clone了項(xiàng)目下來。

配置env文件

拷貝example成.env

cpenv-exampleenv

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

如果有調(diào)試代碼的需求,也可以將PHP_FPM_INSTALL_XDEBUGWORKSPACE_INSTALL_XDEBUG兩個(gè)選項(xiàng)打開

如果還有其他的需求,可以在.env里面搜索,里面已經(jīng)將大多數(shù)配置項(xiàng)都給獨(dú)立出來了

運(yùn)行容器

進(jìn)入到laradock的工作目錄下面,就是clone的項(xiàng)目的根目錄我的工作目錄就是~/Docker/laradock。

然后運(yùn)行如下命令

docker-composeup-dnginxmysql

就會(huì)看到在自動(dòng)執(zhí)行build操作,并且build完了之后自動(dòng)后臺(tái)啟動(dòng)了如下容器

  • nginx

  • php-fpm

  • workspace

  • mysql

那是因?yàn)閜hp-fpm和workspace還有docker-in-docker是隨nginx一并啟動(dòng)的

所以實(shí)際上

docker-composeup-dnginxmysql

docker-composeup-dnginxworkspacephp-fpmmysql

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

up命令在第一次啟動(dòng)的時(shí)候?qū)嶋H上就是build + start的組合,如果容器不存在,那么就build一個(gè)容器,并且啟動(dòng)服務(wù),如果容器存在那么直接啟動(dòng)服務(wù),大概就是這么個(gè)意思 -d的意思是后臺(tái)運(yùn)行

配置web項(xiàng)目

以下是我laravel項(xiàng)目的部分配置

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

注意,數(shù)據(jù)庫主機(jī)必須得是別名才可以,如果DB_CONNECTION這個(gè)地方輸入172.0.0.1或者是localhost都是會(huì)連接失敗的。

在其它的項(xiàng)目中也必須是這樣的,配置數(shù)據(jù)庫鏈接,redis,或者M(jìn)emCache鏈接都必須設(shè)置成具體的別名。或者你說我找到各個(gè)容器的ip,可以嘛。可以,但是并不建議這樣做,因?yàn)閕p是會(huì)變動(dòng)的。

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

這個(gè)主要的技術(shù)實(shí)現(xiàn)應(yīng)該是用了docker的虛擬網(wǎng)橋技術(shù).

配置宿主機(jī)的host

因?yàn)椋覀冊L問的時(shí)候,是通過宿主機(jī)上面的瀏覽器發(fā)送請求的,所以,配置宿主機(jī)上面的host必不可少。

vim/etc/hosts

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

127.0.0.1blog.test

然后保存,刷新下host。

配置nginx

進(jìn)入到./laradock/nginx/sites文件夾,然后ll一下,我們會(huì)發(fā)現(xiàn),laradock已經(jīng)幫我們放了好多列舉的文件進(jìn)來

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

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

cplaravel.conf.exampleblog.confvimblog.conf

打開后的內(nèi)容...

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;****

我們會(huì)發(fā)現(xiàn),如果沒有特殊需求的話,這個(gè)里面大多數(shù)地方我們并不需要修改。我們只需要關(guān)注server_name和root這兩個(gè)參數(shù),把這個(gè)里面的laravel換成我們項(xiàng)目名就可以了,這里我們換成blog

下面是修改后的內(nèi)容

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/,瀏覽器返回結(jié)果:

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1276

    瀏覽量

    70426
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    503

    瀏覽量

    22300
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    499

    瀏覽量

    12466

原文標(biāo)題:使用 Docker 搭建本地開發(fā)環(huán)境!真心強(qiáng)啊

文章出處:【微信號(hào):嵌入式悅翔園,微信公眾號(hào):嵌入式悅翔園】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】搭建基于Linux的Docker開發(fā)環(huán)境

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

    如何在win10家庭版上用docker快速搭建鴻蒙開發(fā)環(huán)境

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

    嵌入式linux開發(fā)環(huán)境該如何去搭建

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

    介紹一下linux環(huán)境docker的使用流程

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

    本地測試環(huán)境搭建

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

    如何搭建鴻蒙開發(fā)環(huán)境

    開發(fā)某一個(gè)平臺(tái)的程序,那么首先要搭建本地開發(fā)環(huán)境,那么如何搭建鴻蒙
    的頭像 發(fā)表于 02-24 11:25 ?3996次閱讀
    如何<b class='flag-5'>搭建</b>鴻蒙<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    嵌入式linux開發(fā)環(huán)境搭建Docker版,基于iTop 4412開發(fā)板)

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

    在linux上進(jìn)行單片機(jī)開發(fā)(使用docker搭建環(huán)境)

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

    Docker_FrontEnd Docker搭建前端開發(fā)環(huán)境

    ./oschina_soft/Docker_FrontEnd.zip
    發(fā)表于 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'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    Docker高效搭建本地開發(fā)環(huán)境教程分享 1

    開發(fā)之前,首先你需要安裝各種開發(fā)工具和服務(wù)支持到你的開發(fā)環(huán)境當(dāng)中,可能會(huì)出依賴問題,環(huán)境變量問題,端口沖突,經(jīng)編譯庫問題等等。
    的頭像 發(fā)表于 02-03 15:49 ?598次閱讀

    Docker 高效搭建本地開發(fā)環(huán)境教程分享 2

    開發(fā)之前,首先你需要安裝各種開發(fā)工具和服務(wù)支持到你的開發(fā)環(huán)境當(dāng)中,可能會(huì)出依賴問題,環(huán)境變量問題,端口沖突,經(jīng)編譯庫問題等等。
    的頭像 發(fā)表于 02-03 15:49 ?734次閱讀

    Docker搭建更酷的本地開發(fā)環(huán)境

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

    基于Docker搭建本地開發(fā)環(huán)境

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

    怎么搭建和管理自己的環(huán)境

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

    php運(yùn)行環(huán)境本地測試地址是

    PHP運(yùn)行環(huán)境本地測試地址是指在本地計(jì)算機(jī)上搭建的用于測試和運(yùn)行PHP代碼的的環(huán)境地址。搭建該運(yùn)
    的頭像 發(fā)表于 12-04 15:25 ?917次閱讀
    主站蜘蛛池模板: 欧美午夜性春猛xxxx | 久久久噜噜噜久久久午夜 | q2002在线观看免费 | 在线观看视频免费入口 | 男女视频免费观看 | av手机在线播放 | 色视频在线看 | 亚洲第九页 | 一级特黄aa大片 | 韩国三级日本三级在线观看 | 免费福利在线播放 | 久综合| 国产亚洲片 | 日本xxxx色视频在线观看免费 | 色片视频网站 | 爱我免费视频观看在线www | 色老头在线视频 | 男女交性视频免费播放视频 | 在线看视频你懂的 | 天天干天天拍天天操 | 亚洲黄色在线网站 | 午夜影院0606免费 | 亚洲特级aaaaaa毛片 | 国产精品黄网站免费进入 | 色中色在线视频 | 免费在线观看a视频 | 亚洲免费资源 | 欧美大片一区二区 | 四虎精品影院永久在线播放 | 色秀视频免费高清网站 | 天天色图片 | 看全色黄大色大片免费久久怂 | 五月婷婷狠狠 | 国产精品一级毛片不收费 | 四虎四虎| 午夜亚洲福利 | 性欧美69| 日日噜噜噜夜夜爽爽狠狠 | 日本视频一区二区三区 | 五月婷婷综合基地 | 综合激情五月婷婷 |