Я создал простую точку api с помощью symfony/fosrest и т. Д. Я могу получить к ней доступ через сборку symfony на сервере, то есть: php bin/console server:run
.Access rest api endpoint docker
Теперь я хочу получить доступ к api в докере. Я создал docker-compose.yml с php-apache и mysql-изображением. Теперь, когда я пытаюсь подключиться к конечным точкам следующим образом, я получаю запрещенную ошибку (403). Я предполагаю, что моя конфигурация apache в изображении докеры php-apache неверна. Может кто-нибудь, пожалуйста, помогите мне исправить это. Благодарю.
endpoint: POST http://192.168.99.100/api/myendpoint
Ошибка заключается в следующем.
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /api/myendpoint on this server.<br />
</p>
<hr>
<address>Apache/2.4.12 (Ubuntu) Server at 192.168.99.100 Port 80</address>
</body></html>
* EDIT - docker-compose.yml
version: "2"
services:
myapp:
build: ./docker
image: php5.6-apache
container_name: myapp
ports:
- "80:80"
volumes:
- .:/app
- $HOME/.composer/cache:/root/.composer/cache
working_dir: /app
links:
- mymysql
environment:
- APPLICATION_ENV=test
mymysql:
image: mysql:5.6
container_name: mymysql
ports:
- "3306:3306"
volumes:
- data:/var/lib/mysql
environment:
- MYSQL_USER=root
- MYSQL_PASSWORD=password
- MYSQL_DATABASE=db
- MYSQL_ROOT_PASSWORD=password
volumes:
data:
ОТВЕТ:
запустить следующие в приложении фреймворка.
docker exec -it your_container_name php bin/console server:run 0.0.0.0:8000
и изменение Докер портов приложений к 8000:8000
в Докер-compose.yml
Теперь вы должны иметь возможность получить доступ к конечной точке следующим образом.
POST http://192.168.99.100/api/myendpoint
Ваш IP-адрес вашего докере может отличаться от моего.
Добавлена Докер-compose.yml. Спасибо, я исправил это после ваших советов. Большое спасибо. – Viraths