Моя цель - настроить среду для создания приложения basi c php, которое использует mon go в качестве базы данных. Я использую простой php с composer. Вот что я сделал до сих пор: это мой docker -compose.yml
version: '3.6'
services:
mongo:
image: mongo:4.2
container_name: mongo
environment:
MONGO_INITDB_ROOT_USERNAME: user
MONGO_INITDB_ROOT_PASSWORD: password
MONGO_INITDB_DATABASE: database
ports:
- "27017:27017"
api:
#this tells docker where to look for the Dockerfile to build the image
build: ./api
#name of your container and also the DNS name (nginx will proxy pass to this container from localhost:8000 when using a browser or Postman)
container_name: api
restart: always
#volumes creates persistent storage in your containers
volumes:
#copy our php files
- ./api:/var/www/html/
#EXPOSE defines the ports reachable from INSIDE your docker network
expose:
- 80
composer:
restart: 'no'
image: composer/composer:php7.2
command: install
volumes:
- ./api:/var/www/html/
nginx:
build: ./nginx
container_name: nginx
restart: always
#PORTS defines ports reachable from the outside world, like a browser or other clients
ports:
- "8000:8000"
А это файл docker внутри api:
FROM php:7.2-apache
RUN apt-get update; \
apt-get install openssl libssl-dev libcurl4-openssl-dev -y; \
pecl install mongo; \
echo "extension=mongo.so" > /usr/local/etc/php/conf.d/mongo.ini
my Конфигурация nginex, которая находится в папке nginx:
server {
listen 8000;
location / {
proxy_pass http://api:80;
}
}
В основном я хочу получить доступ к моему index. php файл на localhost: порт 8000, а также мне нужно иметь возможность подключиться к mongodb.