Exemplo de criação de ambiente (wordpress/mysql) utilizando dockerfile e dockercompose
- Clonar via prompt de comando o projeto em uma pasta de sua preferência:
git clone https://github.com/cicerorod/docker-wordpress-mysql.git
- Acessar a pasta principal do projeto via prompt de comando. Ex:
cd docker-mysql-php
;
1) Criar a arquivo Dockerfile com a definição da imagem que precisamos: Exemplo:
FROM ubuntu
MAINTAINER Cícero Rodrigues
RUN apt-get update
RUN apt-get install -y nginx && apt-get clean
ADD ./configs/nginx.conf /etc/nginx/sites-enabled/default
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
EXPOSE 8080
CMD service nginx start -g
2) Execuatar o comando $ docker build -t cicerorod/nginx:v1 .
para criar a imagem contida no arquivo
3) Para testar $ docker run -d -p 8089:8080 --name myNginx1 cicerorod/nginx:v1
ou $ docker run -it --rm cicerorod/nginx:v1 bash
para acessar o bash o linux
4) Para acessar o servido do nginx via navegador: http://localhost:8089
5) Criar o arquivoa docker-compose.yml que coném os serviços a serem criados
version: '2'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8010:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
6) Executar o comando $ docker-compose.exe up -d
para criação de todos os containers
7) Para acessar o servido do nginx via navegador: http://localhost:8010
8) Para finalizar os containers e remover-los $ docker-compose down
- Faça o fork do projeto (https://github.com/cicerorod/docker-mysql-php/fork)
- Crie uma branch para sua modificação (
git checkout -b feature/[nome]
) - Faça o commit (
git commit -am 'Add files [nome]'
) - Push (
git push origin feature/[nome]
) - Crie um novo Pull Request
Este projeto está sob a licença do MIT. Consulte LICENSE para obter mais informações.