Dockerfile php với nhà soạn nhạc

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

Thí dụ

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ản

Vì 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-update
WORKDIR /usr/src/myapp
COPY . .
# INSTALL YOUR DEPENDENCIES
RUN composer install
CMD 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

Chủ Đề