8000 feat: melhorias e otimizações na estrutura · zino-coder/docker-php8@85b602a · GitHub
[go: up one dir, main page]

Skip to content

Commit 85b602a

Browse files
feat: melhorias e otimizações na estrutura
1 parent ffa3a98 commit 85b602a

File tree

13 files changed

+144
-132
lines changed

13 files changed

+144
-132
lines changed

.gitignore

+4-7
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@
22
/**/.DS_Store
33

44
/**/docker/redis/*
5-
/**/docker/mysql/*
5+
!/**/docker/redis/.gitkeep
66
/**/docker/apache/logs/*
7-
/**/docker/postgres/*
8-
/**/docker/nginx/logs/*
9-
!/**/docker/mysql/config
10-
!/**/docker/mysql/database/.gitkeep
11-
!/**/docker/postgres/.gitkeep
127
!/**/docker/apache/logs/.gitkeep
8+
/**/docker/mysql/dbdata/*
9+
/**/docker/postgres/dbdata/*
10+
/**/docker/nginx/logs/*
1311
!/**/docker/nginx/logs/.gitkeep
14-
!/**/docker/redis/.gitkeep

docker-compose.yml

+85-73
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,104 @@
1-
version: '3.7'
1+
version: "3.7"
22

33
networks:
4-
docker-php8-network:
4+
skeleton-docker.network:
55
driver: bridge
66

77
services:
88
php:
99
build: ./docker/php
1010
restart: always
1111
tty: true
12-
container_name: docker-php8-php
12+
container_name: skeleton-docker.php
13+
# depends_on:
14+
# - mysql
15+
# - postgres
16+
# - redis
17+
# - mariadb
1318
networks:
14-
- docker-php8-network
19+
- skeleton-docker.network
1520
ports:
16-
- '9000:9000'
21+
- "9000:9000"
1722
volumes:
18-
- .:/home/app
23+
- .:/var/www/app.dev
1924

2025
nginx:
2126
build: ./docker/nginx
22-
container_name: docker-php8-nginx
27+
container_name: skeleton-docker.nginx
2328
restart: always
2429
tty: true
2530
depends_on:
2631
- php
32+
# - mysql
33+
# - postgres
34+
# - redis
35+
# - mariadb
2736
ports:
2837
- "80:80"
2938
- "433:433"
3039
volumes:
31-
- .:/home/app
40+
- .:/var/www/app.dev
3241
networks:
33-
- docker-php8-network
42+
- skeleton-docker.network
3443

35-
# apache:
36-
# build: ./docker/apache
37-
# restart: always
38-
# container_name: docker-php8-apache
39-
# networks:
40-
# - docker-php8-network
41-
# depends_on:
42-
# - php
43-
# - mariadb
44-
# ports:
45-
# - '80:80'
46-
# - '443:443'
47-
# volumes:
48-
# - .:/home/app
44+
# apache:
45+
# build: ./docker/apache
46+
# restart: always
47+
# container_name: skeleton-docker.apache
48+
# networks:
49+
# - skeleton-docker.network
50+
# depends_on:
51+
# - php
52+
# # - mysql
53+
# # - postgres
54+
# # - redis
55+
# # - mariadb
56+
# ports:
57+
# - "80:80"
58+
# - "443:443"
59+
# volumes:
60+
# - .:/var/www/app.dev
4961

5062
# mariadb:
5163
# image: mariadb
5264
# tty: true
5365
# restart: always
54-
# container_name: docker-php8-mariadb
66+
# container_name: skeleton-docker.mariadb
5567
# networks:
56-
# - docker-php8-network
68+
# - skeleton-docker.network
5769
# ports:
5870
# - '3306:3306'
5971
# volumes:
6072
# - './docker/mysql/config/mariadb.cnf:/etc/mysql/conf.d/custom.cnf:ro'
61-
# - './docker/mysql/database:/var/lib/mysql'
73+
# - './docker/mysql/dbdata:/var/lib/mysql'
6274
# environment:
6375
# - MYSQL_PASSWORD=root
6476
# - MYSQL_ROOT_PASSWORD=root
6577
# - MYSQL_DATABASE=development
6678

67-
# mysql:
68-
# image: mysql:8
69-
# tty: true
70-
# restart: always
71-
# container_name: docker-php8-mysql
72-
# networks:
73-
# - docker-php8-network
74-
# ports:
75-
# - '3306:3306'
76-
# volumes:
77-
# - './docker/mysql/config/mysql.cnf:/etc/mysql/conf.d/custom.cnf:ro'
78-
# - './docker/mysql/database:/var/lib/mysql'
79-
# environment:
80-
# - MYSQL_PASSWORD=root
81-
# - MYSQL_ROOT_PASSWORD=root
82-
# - MYSQL_DATABASE=development
79+
# mysql:
80+
# build: ./docker/mysql
81+
# tty: true
82+
# restart: always
83+
# container_name: skeleton-docker.mysql
84+
# networks:
85+
# - skeleton-docker.network
86+
# ports:
87+
# - "3306:3306"
88+
# volumes:
89+
# - "./docker/mysql/config/mysql.cnf:/etc/mysql/conf.d/custom.cnf:ro"
90+
# - "./docker/mysql/dbdata:/var/lib/mysql"
91+
# environment:
92+
# - MYSQL_PASSWORD=root
93+
# - MYSQL_ROOT_PASSWORD=root
94+
# - MYSQL_DATABASE=development
8395

8496
# phpmyadmin:
8597
# image: library/phpmyadmin
86-
# container_name: docker-php8-phpmyadmin
98+
# container_name: skeleton-docker.phpmyadmin
8799
# tty: true
88100
# networks:
89-
# - docker-php8-network
101+
# - skeleton-docker.network
90102
# depends_on:
91103
# - mysql
92104
# - mariadb
@@ -99,33 +111,33 @@ services:
99111
# ports:
100112
# - '8080:80'
101113

102-
# postgres:
103-
# image: library/postgres:13-alpine
104-
# container_name: docker-php8-postgres
105-
# tty: true
106-
# restart: always
107-
# networks:
108-
# - docker-php8-network
109-
# ports:
110-
# - '5432:5432'
111-
# volumes:
112-
# - './docker/postgres:/var/lib/postgresql/data'
113-
# environment:
114-
# - POSTGRES_USER=root
115-
# - POSTGRES_PASSWORD=root
116-
# - POSTGRES_DB=development
114+
# postgres:
115+
# build: ./docker/postgres
116+
# container_name: skeleton-docker.postgres
117+
# tty: true
118+
# restart: always
119+
# networks:
120+
# - skeleton-docker.network
121+
# ports:
122+
# - "5432:5432"
123+
# volumes:
124+
# - "./docker/postgres/dbdata:/var/lib/postgresql/data"
125+
# environment:
126+
# - POSTGRES_USER=root
127+
# - POSTGRES_PASSWORD=root
128+
# - POSTGRES_DB=development
117129

118-
# redis:
119-
# image: bitnami/redis:latest
120-
# restart: always
121-
# tty: true
122-
# container_name: docker-php8-redis
123-
# volumes:
124-
# - ./docker/redis:/bitnami/redis/data
125-
# networks:
126-
# - docker-php8-network
127-
# environment:
128-
# - ALLOW_EMPTY_PASSWORD=no
129-
# - REDIS_PASSWORD=root
130-
# ports:
131-
# - '6379:6379'
130+
# redis:
131+
# image: bitnami/redis:latest
132+
# restart: always
133+
# tty: true
134+
# container_name: skeleton-docker.redis
135+
# volumes:
136+
# - ./docker/redis:/bitnami/redis/data
137+
# networks:
138+
# - skeleton-docker.network
139+
# environment:
140+
# - ALLOW_EMPTY_PASSWORD=no
141+
# - REDIS_PASSWORD=root
142+
# ports:
143+
# - "6379:6379"

docker/apache/Dockerfile

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
FROM httpd:2.4-alpine
22

33
ENV TZ=America/Sao_Paulo
4-
ENV APP_ROOT=/home/app
4+
ENV APP_ROOT=/var/www/app.dev
55
ENV SERVER_NAME=localhost
6-
ENV DOCUMENT_ROOT=/home/app/public_html
6+
ENV DOCUMENT_ROOT=${APP_ROOT}/public_html
77
ENV APACHE_LOG_DIR=${APP_ROOT}/docker/apache/logs
88
ENV APACHE_RUN_USER=www-data
99
ENV APACHE_RUN_GROUP=www-data
1010

11-
WORKDIR ${APP_ROOT}
12-
1311
RUN apk add --update --no-cache tzdata
1412

13+
WORKDIR ${APP_ROOT}
14+
1515
RUN mkdir -p ${APP_ROOT}
1616
RUN mkdir -p ${DOCUMENT_ROOT}
1717

docker/mysql/Dockerfile

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FROM mysql:8
2+
RUN usermod -u 1000 mysql

docker/mysql/database/.gitkeep

Whitespace-only changes.

docker/nginx/Dockerfile

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
FROM nginx:1.19.7-alpine
22

3-
WORKDIR /home/app
4-
53
ENV TZ=America/Sao_Paulo
6-
74
RUN apk add --update --no-cache tzdata
85

6+
# RUN usermod -u 1000 nginx
7+
98
COPY ./nginx.conf /etc/nginx/conf.d/default.conf

docker/nginx/nginx.conf

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ log_format compression '$remote_addr - $remote_user [$time_local] '
44

55
server {
66
listen 80;
7-
root /home/app/public_html;
7+
root /var/www/app.dev/public_html;
88
index index.php index.html;
99

1010
server_name localhost www.localhost;
1111

12-
access_log /home/app/docker/nginx/logs/access.log compression;
13-
error_log /home/app/docker/nginx/logs/error.log;
12+
access_log /var/www/app.dev/docker/nginx/logs/access.log compression;
13+
error_log /var/www/app.dev/docker/nginx/logs/error.log;
1414

1515
location ~ \.php$ {
1616
try_files $uri =404;

docker/php/Dockerfile

+29-42
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,24 @@
11
FROM php:8-fpm-alpine
2+
LABEL MAINTAINER="Vagner Cardoso <vagnercardosoweb@gmail.com>"
23

3-
# Workdir
4-
ENV WORKDIR=/home/app
5-
WORKDIR ${WORKDIR}
4+
# Environments
5+
ENV TZ=America/Sao_Paulo
6+
ENV WORKDIR=/var/www/app.dev
67

78
# Updates and installs system dependencies
89
RUN apk add --update --no-cache \
9-
bash \
10-
tzdata \
11-
libxml2-dev \
12-
libpng-dev \
13-
libjpeg-turbo-dev \
14-
freetype-dev \
15-
postgresql-dev \
16-
libzip-dev \
17-
libxslt-dev \
18-
oniguruma-dev \
19-
$PHPIZE_DEPS && \
20-
rm -rf /var/cache/apk/*
21-
22-
# Timezone
23-
ENV TZ=America/Sao_Paulo
24-
RUN echo date.timezone = $TZ > ${PHP_INI_DIR}/conf.d/docker-php-ext-timezone.ini
10+
bash \
11+
tzdata \
12+
libxml2-dev \
13+
libpng-dev \
14+
libjpeg-turbo-dev \
15+
freetype-dev \
16+
postgresql-dev \
17+
libzip-dev \
18+
libxslt-dev \
19+
oniguruma-dev \
20+
$PHPIZE_DEPS && \
21+
rm -rf /var/cache/apk/*
2522

2623
# Configure php dependency
2724
RUN docker-php-ext-configure soap --enable-soap
@@ -46,36 +43,26 @@ RUN docker-php-ext-install \
4643
exif \
4744
soap
4845

49-
# Install xdebug
50-
RUN pecl install xdebug \
51-
&& docker-php-ext-enable xdebug \
52-
&& echo 'xdebug.start_with_request=no' >> ${PHP_INI_DIR}/conf.d/xdebug.ini \
53-
&& echo 'xdebug.mode=debug' >> ${PHP_INI_DIR}/conf.d/xdebug.ini \
54-
&& echo 'xdebug.client_host=host.docker.internal' >> ${PHP_INI_DIR}/conf.d/xdebug.ini \
55-
&& echo 'xdebug.client_port=9000' >> ${PHP_INI_DIR}/conf.d/xdebug.ini \
56-
&& echo 'xdebug.remote_cookie_expire_time=36000' >> ${PHP_INI_DIR}/conf.d/xdebug.ini
57-
58-
# Install extension redis
59-
RUN pecl -v install redis
60-
RUN docker-php-ext-enable redis
46+
# Install pecl
47+
RUN pecl install xdebug && docker-php-ext-enable xdebug
48+
RUN pecl -v install redis && docker-php-ext-enable redis
49+
RUN pecl -v install rar && docker-php-ext-enable rar
6150

62-
# Install extension rar
63-
RUN pecl -v install rar
64-
RUN docker-php-ext-enable rar
51+
# Install composer
52+
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
6553

6654
# Copy php settings
67-
COPY ./php.ini ${PHP_INI_DIR}/conf.d/99-php.ini
55+
COPY ./conf.d ${PHP_INI_DIR}/conf.d
6856

69-
# Install composer
70-
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
57+
# Workdir
58+
WORKDIR ${WORKDIR}
7159

7260
# Copy files to container
73-
#COPY . ${WORKDIR}
74-
75-
# Installs composer dependencies
76-
#RUN cd ${WORKDIR}/applcation && composer install -o
61+
#COPY ./ ./
7762

7863
# Expose port 9000 and start php-fpm server
7964
EXPOSE 9000
8065

81-
CMD ["php-fpm"]
66+
# Run entrypoint
67+
COPY ./entrypoint.sh /usr/bin/docker-entrypoint
68+
CMD [ "docker-entrypoint" ]

docker/php/conf.d/20-xdebug.ini

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
zend_extension = xdebug.so
3+
xdebug.start_with_request = no
4+
xdebug.mode = debug
5+
xdebug.client_host = host.docker.internal
6+
xdebug.client_port = 9003
7+
xdebug.remote_cookie_expire_time = 36000
8+
xdebug.idekey=PHPSTORM
File renamed without changes.

docker/php/entrypoint.sh

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash
2+
3+
# composer install -o --working-dir="$WORKDIR"/application
4+
5+
php-fpm

docker/postgres/.gitkeep

Whitespace-only changes.

docker/postgres/Dockerfile

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FROM postgres:13-alpine
2+
# RUN usermod -u 1000 postgres

0 commit comments

Comments
 (0)
0