Code Monkey home page Code Monkey logo

project-laravel-docker's Introduction

project-laravel-docker

Projeto base Laravel com ambiente Docker

Webserver: Nginx, PHP 7.x, SGBD: MySQL 5.7, phpmyadmin

Premissas: Ter o Git, Docker e Docker-composer instalados

Clonar o repositório

git clone https://github.com/rmsaitam/project-laravel-docker.git

Acessar o diretório do repositório clonado

cd project-laravel-docker

PS: Por padrão nesse ambiente foi definido as credencias default que pode conferir no arquivo docker-compose.yml em environment do serviço db.

Caso desejar alterar, é recomendo fazer antes do build as alterações de credencias default referente ao banco de dados, conforme comentado anteriormente.

Build do ambiente

docker-compose build; docker-compose up -d

Instalar o framework Laravel no container PHP

docker exec -it php_laravel composer create-project --prefer-dist laravel/laravel .

Setar permissão no diretório storage

docker exec -it php_laravel chown -R www-data:www-data storage

Gerar Key do projeto

docker exec -it php_laravel php artisan key:generate

Com isso, a princípio ao acessar no browser http://localhost:8080 deve acessar a página default do Laravel

Execução de Migrations && Seeds

Credencias do banco de dados

Primeiro deve adicionar as credencias do banco de dados no arquivo .env

Exemplo

DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=user
DB_PASSWORD=secret

Nesse ambiente o diretório src é o volume mapeado com o diretório /var/www/html do container PHP

Então, o que for adicionado no diretório src do Host, será adicionado simultaneamente no diretório /var/www/html

Renomar o .env.example para .env e adicionar as credencias do banco de dados.

Por padrão nesse ambiente foi definido as credencias default que pode conferir no arquivo docker-compose.yml em environment do serviço db

Criação da Migrations

docker exec -it php_laravel php artisan make:migration create_tabela_table

Irá criar no diretório src/database/migrations do Host e simultaneamente no diretório /var/www/html/database/migrations do container

Criação do Seed

docker exec -it php_laravel php artisan make:seeder TabelaTableSeeder

Execução do migrations e seeds criados

docker exec -it php_laravel php artisan migrate
docker exec -it php_laravel php artisan db:seeds

Adicionar o nome do vhost no arquivo host

O nome do vhost foi definido como projeto.docker, mas caso desejar, pode alterar no arquivo default do container nginx em server_name, depois adicionar o mesmo nome definido no arquivo /etc/hosts do HOST.

127.0.0.1 projeto.docker

No browser http://projeto.docker:8080 para o projeto Laravel e http://projeto.docker para o phpmyadmin.

Feito!

project-laravel-docker's People

Contributors

211445575 avatar rmsaitam avatar roberto0arruda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

project-laravel-docker's Issues

E: Package 'mysql-client' has no installation candidate

Estou tentando rodar sudo docker-compose build e esta dando um erro com a mensagem do titulo dessa issue.


No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic


Client:
Version: 19.03.6
API version: 1.40
Go version: go1.12.17
Git commit: 369ce74a3c
Built: Fri Feb 28 23:45:43 2020
OS/Arch: linux/amd64
Experimental: false

Server:
Engine:
Version: 19.03.6
API version: 1.40 (minimum version 1.12)
Go version: go1.12.17
Git commit: 369ce74a3c
Built: Wed Feb 19 01:06:16 2020
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.3.3-0ubuntu1~18.04.1
GitCommit:
runc:
Version: spec: 1.0.1-dev
GitCommit:
docker-init:
Version: 0.18.0
GitCommit:


docker-compose version 1.23.2, build unknown
docker-py version: 3.7.3
CPython version: 2.7.12
OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.