اضافه کردن فایل های مورد نیاز داکر
اضافه کردن فایل های مورد نیاز داکر
برای انتقال پروژهای که با Composer ایجاد کردهاید به سرور محلی (Local Server)، باید مراحل زیر را به ترتیب انجام دهید
مرحله اول: باز کردن پروژه در اوبونتو 22.04
- به روز رسانی لینوکس (ubuntu 22.04)
bashsudo apt-get update && sudo apt-get upgrade -y -
باز کردن پروژه
Ubuntu 22.04cd first-website
مرحله دوم: ایجاد فایل docker-compose.yml:
- بعد از باز کردن پروژه توسط دستور زیر فایل docker-compose.yml: را ایجاد کنید
- باز کردن پروژه توسط ویرایشگر کد، که در اینجا vs code می باشد و کپی کردن فایل زیر در docker-compose.yml
نکته: در هر بار استفاده از دستور زیر دقت کنید که نام هایی که در دستور زیر به رنگ قرمز می باشند قبلا استفاده نکرده باشید. بهتر است در هر بار استفاده از دستور زیر به این 4 مورد که با رنگ قرمز مشخص شده یک نام جدید به دلخواه خود اختصاص دهید.
docker-compose.yml# Services Definitionservices:app:build:context: .dockerfile: Dockerfileimage: laravel-appcontainer_name: laravel-apprestart: unless-stoppedworking_dir: /var/wwwvolumes:- .:/var/wwwnetworks:- laravel-networkwebserver:image: nginx:alpinecontainer_name: webserverrestart: unless-stoppedports:- "8000:80"volumes:- .:/var/www- ./docker/nginx:/etc/nginx/conf.dnetworks:- laravel-networkdb:image: mysql:8.0container_name: dbrestart: unless-stoppedenvironment:MYSQL_DATABASE: laravelMYSQL_ROOT_PASSWORD: secretMYSQL_USER: laravelMYSQL_PASSWORD: secretvolumes:- dbdata:/var/lib/mysqlports:- "3306:3306"networks:- laravel-networkphpmyadmin:image: phpmyadmin/phpmyadmincontainer_name: phpmyadminrestart: unless-stoppedports:- "8080:80"environment:PMA_HOST: dbMYSQL_ROOT_PASSWORD: secretnetworks:- laravel-network# Volumes Configurationvolumes:dbdata:driver: local# Networks Configurationnetworks:laravel-network:driver: bridge
Ubuntu 22.04
touch docker-compose.yml
مرحله سوم: ایجاد فایل Dockerfile
- در محیط اوبونتو توسط دستور زیر فایل Dockerfile را به پروژه اضافه کنید
Ubuntu 22.04touch Dockerfile - کپی کردن فایل زیر در Dockerfile
dockerfileFROM php:8.2-fpmWORKDIR /var/wwwRUN apt-get update && apt-get install -y \build-essential \libpng-dev \libjpeg62-turbo-dev \libfreetype6-dev \locales \zip \jpegoptim optipng pngquant gifsicle \vim \unzip \git \curl \libzip-dev \libonig-dev \libpq-dev \libxml2-devRUN docker-php-ext-install pdo_mysql mbstring zip exif pcntlRUN docker-php-ext-configure gd --with-freetype --with-jpegRUN docker-php-ext-install gdRUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composerRUN groupadd -g 1000 wwwRUN useradd -u 1000 -ms /bin/bash -g www wwwCOPY --chown=www:www . /var/wwwUSER wwwEXPOSE 9000CMD ["php-fpm"]
مرحله چهارم: ایجاد پیکربندی Nginx
- توسط دستور زیر فولدری به نام nginx درون فولدر docker ایجاد کنید.
Ubuntu 22.04mkdir -p docker/nginx - توسط دستور زیر فایل app.conf را درون nginx اضافه کنید.
nginxtouch docker/nginx/app.conf - کد زیر را کپی کنید و در docker/nginx/app.conf پیست کنید
nginxserver {listen 80;index index.php index.html;error_log /var/log/nginx/error.log;access_log /var/log/nginx/access.log;root /var/www/public;location ~ \.php$ {try_files $uri =404;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass app:9000;fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;}location / {try_files $uri $uri/ /index.php?$query_string;gzip_static on;}}