聊聊關於Mac Laravel docker sail 搭建問題
先寫段落獨白
兩年多沒用php寫過程式碼了,現在從新撿起來,以前用tp,但tp的版本更新很不友好,所以這次一步到位用Laravel。先docker環境開始吧,我會一邊嘗試一邊寫,也歡迎大家跟我互動,多教我一些東西。我也希望我的新手經驗可以幫助到一些人。
【推薦:laravel教學】
#一.docker Desktop安裝
論壇裡詳細教學
##二. 運行容器(遇到「坑」了!)
ERROR: Service 'laravel.test' failed to build : Build failed
#9 7.166 Some packages could not be installed. This may mean that you have #9 7.166 requested an impossible situation or if you are using the unstable #9 7.166 distribution that some required packages have not yet been created #9 7.166 or been moved out of Incoming.#9 7.166 The following information may help to resolve the situation:#9 7.166#9 7.166 The following packages have unmet dependencies:#9 7.262 gnupg : Depends: gpgv (< 2.2.19-3ubuntu2.1.1~) but 2.2.20-1ubuntu3 is to be installed #9 7.264 perl : Depends: perl-base (= 5.30.0-9ubuntu0.2) but 5.32.1-3ubuntu2.1 is to be installed #9 7.264 Recommends: netbase but it is not going to be installed #9 7.264 perl-base : Breaks: perl (< 5.32.1~) but 5.30.0-9ubuntu0.2 is to be installed #9 7.265 zlib1g-dev : Depends: zlib1g (= 1:1.2.11.dfsg-2ubuntu1.2) but 1:1.2.11.dfsg-2ubuntu6 is to be installed #9 7.265 Depends: libc6-dev but it is not going to be installed or #9 7.265 libc-dev #9 7.283 E: Unable to correct problems, you have held broken packages.
#9 7.262 gnupg : Depends: gpgv (< 2.2.19-3ubuntu2.1.1~) but 2.2.20-1ubuntu3 is to be installed
應該是更高的版本被安裝了,於是我嘗試替換
apt-get
使用aptitude與
apt-get
# 不同的是,aptitude
在處理依賴問題上更佳一些。舉例來說,aptitude 在刪除一個套件時,會同時刪除本身所依賴的套件。這樣,系統中不會殘留無用的包,整個系統更為乾淨。
於是我調整了一下Dockerfile<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">RUN apt-get update \ && apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 \</pre><div class="contentsignin">登入後複製</div></div>
變成了
RUN apt-get update \ && apt-get install -y aptitude \ && aptitude install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 \
再次運行
./vendor/bin/sail up
# #情況變得不同了,但依然報了錯誤
#9 32.31 E: gnupg, gnupg2 and gnupg1 do not seem to be installed, but one of them is required for this operation
並沒有安裝成功,只是執行了過去
又嘗試了apt-get install -f
但依然沒什麼效果
好吧,換個思路觀察了一下,既然說的更高版本已經安裝,那我就基於更高的ubuntu去做,於是我修改了
FROM
,從FROM ubuntu:21.04
FROM ubuntu:latest
好吧,新的依賴問題來了
#9 44.96 Some packages could not be installed. This may mean that you have #9 44.96 requested an impossible situation or if you are using the unstable #9 44.96 distribution that some required packages have not yet been created #9 44.96 or been moved out of Incoming.#9 44.96 The following information may help to resolve the situation:#9 44.96#9 44.96 The following packages have unmet dependencies:#9 45.08 php8.0-bcmath : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 php8.0-cli : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 Depends: php8.0-opcache but it is not going to be installed #9 45.08 Depends: libc6 (>= 2.33) but 2.31-0ubuntu9.2 is to be installed #9 45.08 Depends: libxml2 (>= 2.8.0) but it is not going to be installed #9 45.08 php8.0-curl : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 php8.0-dev : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 Recommends: pkg-php-tools but it is not going to be installed #9 45.08 php8.0-gd : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 php8.0-igbinary : Depends: php8.0-common but it is not going to be installed #9 45.08 php8.0-imap : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 php8.0-intl : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 Depends: libicu67 (>= 67.1-1~) but it is not installable #9 45.08 php8.0-ldap : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 php8.0-mbstring : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 php8.0-memcached : Depends: php8.0-common but it is not going to be installed #9 45.08 php8.0-msgpack : Depends: php8.0-common but it is not going to be installed #9 45.08 php8.0-mysql : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 php8.0-pcov : Depends: php8.0-common but it is not going to be installed #9 45.08 Depends: libc6 (>= 2.33) but 2.31-0ubuntu9.2 is to be installed #9 45.08 php8.0-pgsql : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 php8.0-readline : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 php8.0-redis : Depends: php8.0-common but it is not going to be installed #9 45.08 php8.0-soap : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 Depends: libc6 (>= 2.33) but 2.31-0ubuntu9.2 is to be installed #9 45.08 Depends: libxml2 (>= 2.7.4) but it is not going to be installed #9 45.08 php8.0-sqlite3 : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 php8.0-swoole : Depends: php8.0-common but it is not going to be installed #9 45.08 Depends: libc6 (>= 2.33) but 2.31-0ubuntu9.2 is to be installed #9 45.08 php8.0-xdebug : Depends: php8.0-common but it is not going to be installed #9 45.08 Depends: libc6 (>= 2.33) but 2.31-0ubuntu9.2 is to be installed #9 45.08 php8.0-xml : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 Depends: libc6 (>= 2.33) but 2.31-0ubuntu9.2 is to be installed #9 45.08 Depends: libxml2 (>= 2.9.0) but it is not going to be installed #9 45.08 Depends: libxslt1.1 (>= 1.1.25) but it is not going to be installed #9 45.08 php8.0-zip : Depends: php8.0-common (= 8.0.12-1+ubuntu21.04.1+deb.sury.org+1) but it is not going to be installed #9 45.08 Depends: libc6 (>= 2.33) but 2.31-0ubuntu9.2 is to be installed #9 45.08 Depends: libzip4 (>= 1.7.0) but it is not installable #9 45.10 E: Unable to correct problems, you have held broken packages.
搜尋了一下,似乎找到了一個解決方案
Solve it with downgrade sail composer require laravel/sail:^1.7.0 php artisan sail:install and in ubuntu terminal sail up --build
好,繼續嘗試,先執行
composer require laravel/sail:^1.7.0
發現報錯,具體錯誤忘記了。
我看了一下php版本是7.x於是使用brew install php 發現報錯
Error: Failure while executing; `cp -pR /var/folders/vq/934y4t116875gz570v8drdcm0000gn/T/d20211115-17671-1n3qf1o/openssl@1.1/. /usr/local/Cellar/openssl@1.1` exited with 1. Here's the output:cp: utimes: /usr/local/Cellar/openssl@1.1/.: Operation not permitted cp: chmod: /usr/local/Cellar/openssl@1.1/.: Operation not permitted
sudo brew install php
Error: Running Homebrew as root is extremely dangerous and no longer supported.As Homebrew does not drop privileges on installation you would be giving all build scripts full access to your system.
發現sudo不支援。
於是
sudo chown -R $(whoami) /usr/local/Cellar改變目錄權限
PATH="$(brew --prefix php)/bin:$PATH"export PYTHON_ENV=development
PHP 8.0.12 (cli) (built: Oct 21 2021 14:49:05) ( NTS )Copyright (c) The PHP Group Zend Engine v4.0.12, Copyright (c) Zend Technologies
composer require laravel/sail:^1.7.0
[InvalidArgumentException] Could not find package laravel/laravel with stability stable
composer config -g repo.packagist composer https://packagist.org
php artisan sail:install
sail up
以上是聊聊關於Mac Laravel docker sail 搭建問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Laravel郵件發送失敗時的退信代碼獲取方法在使用Laravel開發應用時,經常會遇到需要發送驗證碼的情況。而在實�...

在dcatadmin(laravel-admin)中如何實現自定義點擊添加數據的表格功能在使用dcat...

Laravel框架中Redis連接的共享與select方法的影響在使用Laravel框架和Redis時,開發者可能會遇到一個問題:通過配置...

在Laravel多租戶擴展包stancl/tenancy中自定義租戶數據庫連接使用Laravel多租戶擴展包stancl/tenancy構建多租戶應用時,...

LaravelEloquent模型檢索:輕鬆獲取數據庫數據EloquentORM提供了簡潔易懂的方式來操作數據庫。本文將詳細介紹各種Eloquent模型檢索技巧,助您高效地從數據庫中獲取數據。 1.獲取所有記錄使用all()方法可以獲取數據庫表中的所有記錄:useApp\Models\Post;$posts=Post::all();這將返回一個集合(Collection)。您可以使用foreach循環或其他集合方法訪問數據:foreach($postsas$post){echo$post->

在Laravel6項目中如何檢查Redis連接的有效性是一個常見的問題,特別是在項目依賴於Redis進行業務處理時。以下是...

Laravel數據庫遷移過程中出現類重複定義問題在使用Laravel框架進行數據庫遷移時,開發者可能會遇到“類已使用�...
