yum -y install python-pip pip install docker-compose
docker login
βββ contaners # docker β βββ fpm β β βββ Dockerfile β β βββ conf β β βββ fpm.conf # fpm, :) β βββ nginx β βββ Dockerfile β βββ conf β βββ nginx.conf βββ database # βββ docker-compose.yml βββ logs # βββ php-code # php βββ html βββ index.php
FROM php:fpm MAINTAINER nickname <my-email@domain> RUN apt-get update && apt-get install -y \ libmcrypt-dev \ && apt-get install -y libpq-dev \ && docker-php-ext-install -j$(nproc) mcrypt \ && pecl install mongodb && docker-php-ext-enable mongodb RUN docker-php-ext-install mbstring RUN docker-php-ext-install exif RUN docker-php-ext-install opcache RUN docker-php-ext-configure pgsql -with-pgsql=/usr/local/pgsql \ && docker-php-ext-install pgsql pdo_pgsql COPY conf/ /usr/local/etc/php-fpm.d/ CMD ["php-fpm"]
FROM nginx:latest MAINTAINER nickname <my-email@domain> COPY ./conf /etc/nginx/conf.d/
server { listen 80; index index.php index.html; server_name localhost; error_log /etc/logs/nginx/nginx_error.log; access_log /etc/logs/nginx/nginx_access.log; root /var/www; location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass fpm:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } }
docker-php-ext-install
docker-php-ext-enable # , ( pecl)
nginx: dockerfile: ./Dockerfile # build build: ./contaners/nginx ports: - 80:80 volumes: - ./logs:/etc/logs/nginx volumes_from: - fpm:rw environment: - NGINX_HOST=localhost - NGINX_PORT=80 command: nginx -g "daemon off;" # -, ) links: - fpm fpm: dockerfile: ./Dockerfile build: ./contaners/fpm volumes: - ./php-code:/var/www:rw
docker-compose up -d
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2d6263b52380 test_nginx "nginx -g 'daemon off" 8 minutes ago Up 8 minutes 443/tcp, 0.0.0.0:8080->80/tcp test_nginx_1 04370a9e1c73 test_fpm "php-fpm" 8 minutes ago Up 8 minutes 9000/tcp test_fpm_1 docker tag 2d6263b52380 my-login/repo:nginx docker tag 2d6263b52380 my-login/repo:fpm docker push my-login/repo:nginx docker push my-login/repo:php7-fpm
nginx: image: my-login/repo:nginx ports: - 80:80 volumes: - ./logs:/etc/logs/nginx volumes_from: - fpm:rw environment: - NGINX_HOST=localhost - NGINX_PORT=80 command: nginx -g "daemon off;" # -, ) links: - fpm fpm: image: my-login/repo:php7-fpm volumes: - ./php-code:/var/www:rw
docker exec -it 04370a9e1c73 bash
docker-php-ext-install pcntl
docker commit -m "added pcntl ext" 04370a9e1c73 my-login/repo:php7-fpm
docker push my-login/repo:php7-fpm
nginx: image: my-login/repo:nginx ports: - 80:80 volumes: - ./logs:/etc/logs/nginx volumes_from: - fpm:rw environment: - NGINX_HOST=localhost - NGINX_PORT=80 command: nginx -g "daemon off;" links: - fpm fpm: image: my-login/repo:php7-fpm volumes: - ./php-code:/var/www:rw links: - mongo - postgres mongo: image: mongo ports: - 27017:27017 # volumes: - ./database/mongo:/data/db postgres: image: postgres:latest ports: - 5432:5432 # volumes: - ./database/postgres:/data/postgres environment: POSTGRES_PASSWORD: <myPassword> POSTGRES_USER: postgres PGDATA : /data/postgres
docker-compose up -d
docker exec -it some-mongo mongo admin connecting to: admin > db.createUser({ user: 'jsmith', pwd: 'some-initial-password', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }); Successfully added user: { "user" : "jsmith", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
$manager = new MongoDB\Driver\Manager("mongodb://mongo:27017");
Source: https://habr.com/ru/post/317504/
All Articles