<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Jalal LinuX</title>
        <link>https://virgool.io/feed/@jalallinux</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 09:59:48</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/945263/avatar/avatar.png?height=120&amp;width=120</url>
            <title>Jalal LinuX</title>
            <link>https://virgool.io/@jalallinux</link>
        </image>

                    <item>
                <title>داکرایز لاراول</title>
                <link>https://virgool.io/@jalallinux/laravel-dockerize-rkwgmyzk55qi</link>
                <description>سلام دوستان ✌??چند مدت پیش برای داکرایز پروژه لاراولی ایمیج ساختم و خیلی کمکم کرد و دوستان هم استفاده از این ایمیج براشون راحت بوده و راضی بودن. دوست داشتم با شما هم به اشتراک بزارم. ✍️پکیج های نصب شده و کانفیگ های این ایمیج:
OS: amd64/ubuntu:20.04
TimeZone: Asia/Tehran

Php: 8.0
Composer: latest
Node: 16
Npm: latest
Pm2: latest
Postgres-Client: 14

OS Packages:
nano wget curl net-tools iputils-ping 
supervisor sqlite3 zip unzip git htop
jpegoptim optipng pngquant gifsicle

Php Extensions: swoole pgsql sqlite3 gd curl memcached imap mbstring xml zip bcmath soap readline intl pcov msgpack ldap igbinary redis pear  Php Customize ini: post_max_size=100M upload_max_filesize=100M variables_order=EGPCS

Aliases:
art = php artisan شما برای استفاده از این ایمیج نیاز به ایجاد ۵ فایل در پروژه خود دارید..env.dockerاین فایل همان env ای خواهد بود که در cotainer شما ایجاد میشود. میتوانید برای ادرس دادن به ای پی بیرون از کانتینر (سروری ک دارید روش کار میکنید) از host.docker.internal استفاده کنید.APP_NAME=Laravel
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://lcalhost

LOG_CHANNEL=daily
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=pgsql

DB_HOST=host.docker.internal
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=postgres
DB_PASSWORD=postgres

BROADCAST_DRIVER=log
CACHE_DRIVER=redis
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database
SESSION_DRIVER=file
SESSION_LIFETIME=120

MEMCACHED_HOST=127.0.0.1

REDIS_HOST=host.docker.internal
REDIS_PASSWORD=
REDIS_PORT=6379

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=&amp;quot${APP_NAME}&amp;quot

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_HOST=
PUSHER_PORT=443
PUSHER_SCHEME=https
PUSHER_APP_CLUSTER=mt1

VITE_PUSHER_APP_KEY=&amp;quot${PUSHER_APP_KEY}&amp;quot
VITE_PUSHER_HOST=&amp;quot${PUSHER_HOST}&amp;quot
VITE_PUSHER_PORT=&amp;quot${PUSHER_PORT}&amp;quot
VITE_PUSHER_SCHEME=&amp;quot${PUSHER_SCHEME}&amp;quot
VITE_PUSHER_APP_CLUSTER=&amp;quot${PUSHER_APP_CLUSTER}&amp;quot‍docker-compose.ymlversion: &#039;3&#039;
services:
    app:
        container_name: &#039;laravel&#039;
        restart: always
        build:
            context: .
            dockerfile: Dockerfile
        tty: true
        extra_hosts:
            - &#039;host.docker.internal:host-gateway&#039;
        ports:
            - &#039;0.0.0.0:80:8000&#039;DockerfileFROM jalallinux/laravel-9:php-80

COPY . /app
WORKDIR /app

COPY start-container /usr/local/bin/start-container
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
RUN chmod +x /usr/local/bin/start-container

COPY .env.docker .env
RUN composer install

EXPOSE 8000
ENTRYPOINT [&amp;quotstart-container&amp;quot]start-container#!/usr/bin/env bash

if [ ! -z &amp;quot$WWWUSER&amp;quot ]; then
    usermod -u $WWWUSER root
fi

if [ ! -d /.composer ]; then
    mkdir /.composer
fi

chmod -R ugo+rw /.composer

if [ $# -gt 0 ]; then
    exec gosu $WWWUSER &amp;quot$@&amp;quot
else
    exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
fisupervisor.confاین فایل supervisor است برای ران کردن و نگه داشتن پروسس ها. که در این مثال دستور serv پروژه و pm2 رو ران کردیم.[supervisord]
nodaemon=true
user=root
logfile=/var/log/supervisor/supervisord.log
pidfile=/var/run/supervisord.pid

[program:php]
#command=/usr/bin/php -d variables_order=EGPCS /app/artisan serve --host=0.0.0.0 --port=8000
command=/usr/bin/php -d variables_order=EGPCS /app/artisan octane:start --host=0.0.0.0 --port=8000
user=root
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0

[program:pm2]
command=/usr/bin/pm2 start
user=root
autorestart=falseecosystem.config.jsاین فایل مربوط به pm2 است و باید پروسس هایی که میخواهید ران باشن رو در این لیست اضافه کنید. در این مثال یک scheduler و چهار صف لاراول را ران کردیم. برای اطلاعات بیشتر به داکیومنت pm2 مراجعه کنید.module.exports = {
    apps: [
        {
            namespace: &amp;quotlaravel&amp;quot,
            name: &amp;quotscheduler&amp;quot,
            interpreter: &amp;quotphp&amp;quot,
            script: &amp;quotartisan&amp;quot,
            exec_mode: &amp;quotfork&amp;quot,
            instances: 1,
            autorestart: true,
            cron_restart: &amp;quot* * * * *&amp;quot,
            max_memory_restart: &amp;quot50M&amp;quot,
            watch: false,
            args: [
                &amp;quotschedule:work&amp;quot,
            ],
        },
        {
            namespace: &amp;quotlaravel&amp;quot,
            name: &amp;quotqueue&amp;quot,
            interpreter: &amp;quotphp&amp;quot,
            script: &amp;quotartisan&amp;quot,
            exec_mode: &amp;quotfork&amp;quot,
            instances: 4,
            autorestart: true,
            cron_restart: &amp;quot5 * * * *&amp;quot,
            max_memory_restart: &amp;quot50M&amp;quot,
            watch: false,
            args: [
                &amp;quotqueue:work&amp;quot,
                &amp;quotdatabase&amp;quot,
                &amp;quot--queue=default&amp;quot,
                &amp;quot--tries=3&amp;quot,
            ],
        },
    ]
}در آخر هم میتونید با دستور زیر پروژه خود را با داکر اجرا کنید.docker-compose up -d --buildامیدوار مفید واقع شده باشه ?</description>
                <category>Jalal LinuX</category>
                <author>Jalal LinuX</author>
                <pubDate>Fri, 06 Jan 2023 09:33:34 +0330</pubDate>
            </item>
            </channel>
</rss>