發表文章

目前顯示的是 6月, 2024的文章

[Linux] Docker中 COPY 和 -v 的使用場景

  使用 -v 參數來掛載外部路徑到 Docker 容器內是開發階段非常常見的做法。這樣做的好處是,你可以在本地編輯代碼,並立即在 Docker 容器內看到變更,無需每次都重新構建映像。以下是兩種情況的對比: 1. 使用 COPY 指令在構建映像時複製文件 這種方法適合於構建最終的生產環境映像。構建完成後,所有的應用程式文件都被複製到了 Docker 映像中。 Dockerfile 複製程式碼 示例: FROM php: 8.2 -cli WORKDIR / var /www # 會將本地的檔案複製到 WORKDIR /var/www COPY . . RUN php -r "file_exists('.env') || copy('.env.example', '.env');" && \ php artisan key:generate && \ composer install EXPOSE 8000 CMD [ "php" , "artisan" , "serve" , "--host" , "0.0.0.0" , "--port" , "8000" ] 2. 使用 -v 參數在運行容器時掛載本地路徑 這種方法適合於開發階段。你可以在本地編輯代碼,並立即在 Docker 容器內看到變更。 Dockerfile 示例(更簡單): FROM php: 8.2 -cli WORKDIR / var /www RUN php -r "file_exists('.env') || copy('.env.example', '.env');" && \ composer install EXPOSE 8000 CMD [ "php" , "artisan" , "serve" , "--host" , "0.0.0....