使用Laradock建立Laravel運行環境 & 遇到的問題

環境:windows 跑 VirtualBox ubuntu 18.04

分享

環境:windows 跑 VirtualBox ubuntu 18.04

執行 apt upgrade 和 apt update

安裝 git, docker.io, docker-compose

docker版本:17.06.2ce

docker-compose版本:1.17.1


運行laradock

於/文件下載laradock

git clone https://github.com/Laradock/laradock.git

複製環境設定

cp env-example .env

運行container

docker-compose up -d nginx mysql phpmyadmin

進入 workspace container 建製 laravel 專案資料夾

docker exec -it

建製laravel

於當前路徑安裝 composer

apt install composer

下載 laravel安裝程序

composer global require "laravel/installer"

將 composer 加入環境變數

export PATH=$PATH:$HOME/.composer/vendor/bin

建立專案資料夾blog

laravel new blog

更改 laradock 容器映射路徑

/vim laradock/.env

### Paths #################################################
# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../blog/  
# 找到上面這行,修改為 laravel 專案於 laradock/ 的相對路徑

如果在container外面編輯專案的話要把這個地方改一下,資料才可以順利同步到container內# Point to where the `APP_CODE_PATH_HOST` should be in the container. You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
APP_CODE_PATH_CONTAINER=/var/www:delegated #這裡要把cache改成delegated

更改專案資料夾blog權限

因為於 container 內建立的專案資料夾 owner, group都是root,用IDE編輯內容的話極度不方便,所以我會將資料夾和其子目錄的 owner, group 更改為自己常用的帳號

於~/文件sudo chown {userName} blog -Rsudo chgrp {userName} blog -R

更改 /blog/.env 環境設置DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=mysql
DB_USERNAME=root
DB_PASSWORD=rootREDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379

目前遇到的問題

於 workspace container 中執行下面指令會出現錯誤artisan make:auth
artisan migrate // 執行這一行時,mysql會拒絕request

1.目前查到的原因:最新版的mysql所造成的問題,似乎跟用戶密碼的加密方式有關,但我更改mysql 使用者密碼 =>不加密 還是無法解決此問題。

2.更改 laradock/.env 的 mysql 版本 => 5.7會造成 mysql container 異常中止

3.嘗試使用 https://github.com/laradock/laradock/issues/1392
中的方法來解決上述問題,嘗試中…

4.使用實體機安裝ubuntu 18.04 ...跑 docker-compose mysql:5.6版可以順利架起 container 不懂為什麼用vm跑會失敗…


後續解決方案

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

上述錯誤訊息,參考https://github.com/laradock/laradock/issues/1392#issuecomment-409612243
到mysql的container中執行

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; 
ALTER USER 'default'@'%' IDENTIFIED WITH mysql_native_password BY 'secret';

之後就可以順利執行migration了

Read more

Gaze Guard 短影片旁白的 TTS 成本與隱私防護示意圖

短影片旁白的成本,其實比我想像低

我最近在做一支 Gaze Guard 的 20 秒產品介紹影片。 原本想說簡單做個動畫就好。 後來想說如果有配音,會感覺比較生動也比較能夠描述使用的情境和達成的效果。 這次我測了什麼 我測的是產品介紹影片用的英文旁白。 工具底層使用的是 Edge TTS,也就是 Microsoft Edge 的線上 Text-to-Speech 服務。常見的底層工具是 edge-tts。 這不是正式 Azure Speech API 的計費路徑。 在我這次的環境裡,它沒有要求 API key,也沒有回傳可見的 per-use billing。 所以這次測試本身,比較像是快速 prototype。 如果未來要正式商用、穩定大量產出,就要回頭看 Azure Speech、OpenAI TTS、ElevenLabs 這類正式付費方案。

By SteepingLogic
用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard

用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard

# 用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard 我有一台 local Hermes。 平常它就在自己的機器上跑。 可能是家裡的桌機。 可能是 NAS。 可能是一台一直開著的 Linux box。 也可能只是我自己的筆電。 問題是,人一離開那個網路,Hermes dashboard 就變成一個只存在於 localhost 的東西。 我想在外面打開它。 但我沒有 static IP。 沒有買網域。 也不想進路由器開 port forwarding。 因為那條路通常長這樣: * 找 public IP * 設定 NAT * 開 port * 處理防火牆 * 補 HTTPS * 設定憑證 * 再擔心 origin IP 被掃 非常友善。 所以這篇先走另一條路:

By SteepingLogic
Invoshot 開發日記|正向回饋

Invoshot 開發日記|正向回饋

想信很多人在開發的時候都常常會做一件事,那就是: 不斷地反覆思考,在腦袋內把流程跑過很多次,然後思考哪裡可以做得更好 不限坐在電腦前的時後,可能是在捷運上,在人行道上, 在馬桶上或是在洗澡的時候 🤪 我不斷地在想:AI 辨識完一張發票後,使用者接下來最需要的是什麼? 每個欄位都要核對嗎? 這麼多欄位真的不會漏看嗎? 所以我在 Invoshot 裡加了提醒功能。 辨識結果出來後,系統會把比較需要注意的地方標出來。 不是把所有不確定都丟給使用者,而是把他真正需要介入的那幾秒鐘留出來。 今天收到一則訊息: 今天用了有新增提醒功能很棒! 真的有變輕鬆 😎 看到這句的時候,我第一個想到的是: 原來那些只是我腦內風暴的優化項目,使用者是真的可以感受到差異的! 感覺又有動力了!

By SteepingLogic