DEV Community

Gustavo Jhon
Gustavo Jhon

Posted on

docker compose and dockerfile

docker-compose.yml

services:

  laravel-docker:
    container_name: laravel-docker
    build: .
    volumes:
      - ./laravel-app:/var/www/html
    ports:
      - 9000:80

  mysql_db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: taravel_docker
    ports:
    - 3306:3306

  phpmyadmin:
    image: phpmyadmin:latest
    ports:
      - 9001:80
    environment:
      - PMA_ARBITRARY=1
Enter fullscreen mode Exit fullscreen mode

Dockerfile

FROM php:8.1.0-apache
WORKDIR /var/www/html

# Mod Rewrite
RUN a2enmod rewrite

# Linux Library
RUN apt-get update -y && apt-get install -y \
    libicu-dev \
    libmariadb-dev \
    unzip zip \
    zlib1g-dev \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libpng-dev 

# Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# PHP Extension
RUN docker-php-ext-install gettext intl pdo_mysql gd

RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd
Enter fullscreen mode Exit fullscreen mode

run

docker-compose build
docker-compose up
Enter fullscreen mode Exit fullscreen mode

Makefile

setup:
    @make build
    @make up 
    @make composer-update
build:
    docker-compose build --no-cache --force-rm
stop:
    docker-compose stop
up:
    docker-compose up -d
composer-update:
    docker exec laravel-docker bash -c "composer update"
data:
    docker exec laravel-docker bash -c "php artisan migrate"
    docker exec laravel-docker bash -c "php artisan db:seed"
Enter fullscreen mode Exit fullscreen mode
composer create-project laravel/laravel .
make composer-update
make data
Enter fullscreen mode Exit fullscreen mode

Top comments (0)