An open API service indexing awesome lists of open source software.

https://github.com/yaza-putu/install-docker

Esay install docker on linux and deploy apps in docker, this config now for for php project
https://github.com/yaza-putu/install-docker

config-docker deploy-docker docker docker-github install-docker

Last synced: about 2 months ago
JSON representation

Esay install docker on linux and deploy apps in docker, this config now for for php project

Awesome Lists containing this project

README

        

# Install docker & docker-compose + deploy laravel di docker (Development Local)

#tested on linux, windows, and mac (Development Local)

#container & images
* MYSQL
* PHPMYADMIN
* PHPFM
* NGINX

#Requirement
* Docker Desktop Community 2.3.0.5
* Docker Compose

## Instalasi di linux / mac
* Silakan clone repo ini
* Install docker
```bash
sudo apt-get install docker.io
```
* install docker compose
```bash
sudo apt-get install docker-compose
```
## Install di windows
* Silakan clone repo ini
* Silakan download docker di situs resmi https://docs.docker.com/docker-for-windows/release-notes/

## Build Docker images
* masuk ke folder docker
```bash
## masuk ke folder docker
cd /folder-docker
```
```bash
## build up images and contaner running
sudo docker-compose up -d --build
```
* tunggu proses ini sampai selesai, akan memakan waktu beberapa menit
* done
```bash
###untuk mengecek container apakah sudah berjalan
sudo docker container ls
```

## cara deploy app (contoh:laravel)
* silakan install composer terlebih dahulu disini
* buka docker-compose.yml
* tambahakn lokasi folder sistem di volume phpfm dan ngix, lihat gambar 1 dan gambar 2
![alt text](https://res.cloudinary.com/dk0053zbe/image/upload/v1592650544/Docker/phpfm_gpqlup.png)
gbr 1
![alt text](https://res.cloudinary.com/dk0053zbe/image/upload/v1592650544/Docker/nginx_tfgpsz.png)
gbr 2
![alt text](https://res.cloudinary.com/dk0053zbe/image/upload/v1592650544/Docker/vhost_i2lnnc.png)
gbr 3
* setting vhost lihat pada gambar 3
* registerkan port di nginx, contoh pada vhost kita buat projek kita-anak-indonesia di listen port 80, di nginx kita akan melakukan port forwading : jika user mengakses port 8080 kita akan forward ke port 80, contoh: (8080:80), di gambar 2 bisa anda lihat pada ports

* contoh diatas saya pakai kita-anak-indonesia (laravel projek)
* pada .env laravel username database= root, password database = temp123,DB_HOST=ip addres LAN/WLAN atau DB_HOST=mysql
* jika sudah selesai, anda bisa menjalankan ulang service containernya

## Start container dengan docker-compose
```bash
sudo docker-compose up -d
```
## Mematikan service container
```bash
sudo docker-compose down
```
## delete all image, container, network, etc on docker
```bash
sudo docker system prune --all
```
## note : sebelum mendeploy app silakan dimatikan terlebih dahulu dockernya, setelah selesai silakan di up kembali
* fix permission storage/logs dan bootstrap/cache di laravel
```bash
sudo chmod -R ugo+rw storage/logs
sudo chmod -R ugo+rw bootstrap/cache
```

## Gunakan solusi dibawah ini jika kalian melihat error seperti dibawah ini saat mengakses phpmyadmin

mysqli::real_connect(): (HY000/1130): Host 'ip address' is not allowed to connect to this MySQL server

anda bisa menyesuaikan config docker-compose.yml dengan solusi dibawah ini

contaner name for mysql : mysql

mysql_root_password : temp123

mysq user : root

mysql user password : temp123

error ini terjadi pada saat docker-compose up --build , proses pendaftaran data mysql tidak terjadi, seperti pendaftaran mysql_root_password, user host mysql baik itu username dan passwordnya.

* Access terminal mysql container
```bash
sudo docker exec -ti contaner_mysql_name bash
```
* Login to mysql
```bash
mysql -u root -p
```

* Change password mysql root
```bash
ALTER USER 'root'@'localhost' IDENTIFIED BY 'PASSWORD';
```

* Check existing database users
```bash
SELECT host, user FROM mysql.user;
```

* Add user mysql
```bash
CREATE USER 'root'@'%' IDENTIFIED BY 'your_password_root';
```

* Grant All Privilages database
```bash
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
```
* exit mysql and terminal container
* down docker-compose
* stop docker service
```bash
sudo service docker stop
```
* start docker service
```bash
sudo service docker start
```
* up docker-compose

## Optimasi speed request response docker di mac dan windows (Recomended)
lokasi edit di docker-compose.yml
tambahkan pada volume app di phpfpm
```yml
:rw,delegated
```
menjadi seperti ini
```yml
services:
phpfpm:
container_name: phpfpm
build: './phpfpm'
links:
- mysql
volumes:
- ./apps/name-app:/var/www/name-app:rw,delegated
```
Detail https://blog.javan.co.id/meningkatkan-performa-docker-di-macos-dan-windows-5e67abc55e8