Mehmet Ali Kandemir - Anasayfa
Mehmet Ali Kandemir Mehmet Ali Kandemir
“De ki: Hiç bilenlerle bilmeyenler bir olur mu?” Zümer sûresi , 9
×

Docker

Docker Komutlar

docker ps -a Tüm İmajları listerler

docker ps Çalışan imajları listeler

docker network inspect bridge

docker inspect docker pull

docker search

docker run

docker rm imajı kaldırır

docker rm -f çalışıyor olsada imajı kaldırır docker stats container performanslarını gösterir

docker exec -it bash # Backup

docker exec CONTAINER /usr/bin/mysqldump -u root --password=root DATABASE > backup.sql # Restore cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=root DATABASE

docker attach

docker logs Stop and remove all docker containers and images container listele

docker ps -aq container tümünü durdur docker stop $(docker ps -aq) Tüm containerları kaldır docker rm $(docker ps -aq)

Tüm images ları kaldır docker rmi $(docker images -q)

2019-10-16 15:12:05 devamı ...

Docker Container Mysql Backup and Restore

# IP adresini öğrenelim docker inspect CONTAINER | grep IPAddres # geri yüklemek için db sema önceden olmalı mysql -uroot -ppass -h IPAddress sema_adi -P 3306 < db_backup.sql # yedeklemek için mysqldump -uroot -ppass IPAddress sema_adi -P 3306 > db_backup.sql
2020-03-17 10:43:07 devamı ...

Docker container üzerinde laravel job, crontab, cron çalıştırma

docker exec -t <container-name> php artisan schedule:run >> /var/log/<container-name>.log 2>&1

2021-08-31 17:00:39 devamı ...

laravel rabbitmq

composer require vladimir-yuldashev/laravel-queue-rabbitmq

docker run -d --hostname my-rabbit --name rabbitmq -p 8080:15672 -p 5672:5672 rabbitmq:3-management

queue.php

'rabbitmq' => [

    'driver' => 'rabbitmq',
    'queue' => env('RABBITMQ_QUEUE', 'statusOfBill'),
    'connection' => PhpAmqpLib\Connection\AMQPLazyConnection::class,

    'hosts' => [
        [
            'host' => env('RABBITMQ_HOST', '127.0.0.1'),
            'port' => env('RABBITMQ_PORT', 5672),
            'user' => env('RABBITMQ_USER', 'guest'),
            'password' => env('RABBITMQ_PASSWORD', 'guest'),
            'vhost' => env('RABBITMQ_VHOST', '/'),
        ],
    ],

    'options' => [
        'ssl_options' => [
            'cafile' => env('RABBITMQ_SSL_CAFILE', null),
            'local_cert' => env('RABBITMQ_SSL_LOCALCERT', null),
            'local_key' => env('RABBITMQ_SSL_LOCALKEY', null),
            'verify_peer' => env('RABBITMQ_SSL_VERIFY_PEER', true),
            'passphrase' => env('RABBITMQ_SSL_PASSPHRASE', null),
        ],
        'queue' => [
            'job' => VladimirYuldashev\LaravelQueueRabbitMQ\Queue\Jobs\RabbitMQJob::class,
        ],
    ],

    /*
     * Set to "horizon" if you wish to use Laravel Horizon.
     */
    'worker' => env('RABBITMQ_WORKER', 'default'),

],

 

.env 

QUEUE_CONNECTION=rabbitmq

 

publisher

php artisan make:job TestJob

class TestJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    private $data;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($data)
    {
        $this->data = $data;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {

    }
}

php artisan make:command FireEvent

class FireEvent extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'fire';


    public function handle()
    {
        TestJob::dispatch(MemorizedPage::find(1)->toArray());
    }
}

 

 

 

 

Consumer

php artisan make:job TestJob

class TestJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    private $data;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($data)
    {
        $this->data = $data;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        echo 'Event: UserCreated' . PHP_EOL;
        echo json_encode($this->data) . PHP_EOL;
        // TODO: Event User Created
    }
}

 

BankExtreJob::dispatch( $exception)->onConnection('rabbitmq')->onQueue('default');

EventServiceProvider.php
public function boot()
{
    \App::bindMethod(TestJob::class . '@handle', fn($job) => $job->handle());
}
2021-09-12 23:33:31 devamı ...

Docker üzerinde çalışan queue ları için aşağıdaki şekilde izleyebilirsiniz

docker exec -t <container_name> php artisan queue:work <connection_name>

docker exec -t <container_name> php artisan queue:work <connection_name> --queue=<queue_name>

2021-09-14 14:26:33 devamı ...

Docker Container Gitlab oluşturma

docker run --detach  --hostname gitlab.test --publish 4443:443 --publish 8061:80 --publish 2222:22 --name gitlab --restart always -e GITLAB_ROOT_EMAIL="xxxxx@xxxxx.com" -e GITLAB_ROOT_PASSWORD="pass" --shm-size 256m  gitlab/gitlab-ce:latest

2022-03-16 02:14:15 devamı ...

Docker default IP ayarlarını değiştirme

docker IP leri iç network IP leri ile çakışırsa aşağıdaki şekilde değiştirebilirsiniz.

dosya yoksa oluşturulur

nano /etc/docker/daemon.json

Aşağıdaki şekilde içeriği düzenlenir. IP ler istenilen şekilde düzenlenebilir.

{
  "log-driver": "journald",
  "log-opts": {
     "tag": "{{.Name}}"
  },
  "bip": "153.53.0.1/16",
  "default-address-pools":
  [
    {
     "base":"153.10.0.0/16",
     "size":24
    }
  ]

}

 

sudo systemctl restart docker

 

netstat -rn


 

2022-06-08 14:07:42 devamı ...

Docker container

Docker container içerisine root ile girme

docker exec -u root -it <container> bash

2022-08-16 16:55:24 devamı ...

Docker Container içine dosya kopyalama işlemi

docker cp php.ini faturamnetyp_wwwpm_1:/usr/local/etc/php/

2022-09-01 18:36:21 devamı ...

gitlab ci cd sample ssh

image: malikandemir/laravel-application:0.1.0

before_script:

  - apt-get update -qq

  - apt-get install -qq git

    # Setup SSH deploy keys

  - 'which ssh-agent || ( apt-get install -qq openssh-client )'

  - eval $(ssh-agent -s)

  - ssh-add <(echo "$SSH_PRIVATE_KEY")

  - mkdir -p ~/.ssh

  - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'

 

deploy_staging:

  stage: build

  environment:

    name: staging

    url: example.com'

  script:

    - ssh user@host "cd /home/testpaysystem/ && git pull && npm run dev && exit"

  only:

    - main

2022-10-11 16:59:35 devamı ...