Khi chạy lệnh "ADD" trong Dockerfile, trên Docker cho Windows, thao tác này sẽ sao chép các tệp thay vì sao chép Symlink
Điều này có tác dụng làm thay đổi các tệp này [trong Gói phân phối] không xuất hiện bên trong bộ chứa Docker; . e. sửa đổi các lớp không xuất hiện
Để khắc phục điều này, bạn cần thêm mọi gói từ DistributionPackages vào khối ổ đĩa của docker-compose. tập tin yml
Ví dụ: hãy lấy cấu trúc tệp sau - chúng tôi có gói trang web và gói "bình thường" trong Gói phân phối
Vài ngày trước, tôi phải làm việc với một thiết lập ứng dụng web PHP Slim rất đơn giản được chứa hoàn toàn bằng Docker. Tôi đã quản lý nó để làm cho nó hoạt động bằng bộ chứa Nginx Docker, bộ chứa PHP-FPM và bộ chứa ứng dụng Slim. Tất cả đều hoạt động tốt khi tôi bắt đầu vật lộn với vấn đề xây dựng docker Compose khi cố gắng cài đặt các phụ thuộc PHP của mình bằng Trình soạn thảo, bên trong các bước xây dựng bộ chứa của Dockerfile [đây là các bước được thực thi khi bạn chạy bản dựng dockercompose]. Tôi quyết định chia sẻ với bạn vấn đề này và một vài cách giải quyết mà bạn có thể áp dụng khi đối mặt với nó, với một ví dụ đơn giản nhưng thực tế
Ví dụ thiết lập dự án cơ bảnVì vậy, để bắt đầu, hãy xem xét cấu trúc dự án sau
/php
composer.json
main.php
php.Dockerfile
docker-compose.yml
Một cấu trúc khá cơ bản và tối thiểu cho một dự án PHP nhỏ, sử dụng Trình soạn thảo để xác định các phụ thuộc của nó. Chúng ta hãy xem docker-compose. tập tin yml
services:
php:
container_name: my_php_container__
build:
context: ./php
dockerfile: ./php.Dockerfile
volumes:
- ./php/:/usr/src/myapp
Điều này chỉ xác định một dịch vụ PHP, sử dụng một ổ đĩa được chia sẻ với thư mục/php và các hướng dẫn Dockerfile của nó được xác định trong tệp php. tập tin dockerfile. Hãy xem nó
FROM php:7.4-cli# INSTALL ZIP TO USE COMPOSER
RUN apt-get update && apt-get install -y \
zlib1g-dev \
libzip-dev \
unzip
RUN docker-php-ext-install zip# INSTALL AND UPDATE COMPOSER
COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN composer self-updateWORKDIR /usr/src/myapp
COPY . .# INSTALL YOUR DEPENDENCIES
RUN composer installCMD php main.php
Ở đây chúng tôi bắt đầu từ một PHPv7. 4 hình ảnh; . tập tin php
Hãy giả sử chính của chúng tôi. php của bạn chỉ đơn giản như sau