I'm trying to get phpmyadmin to work on my live server in Vultr. I have a full-stack react app for the front-end and express Node Js for the back-end as well as mysql for database and phpmyadmin to create tables and stuff. Both React app and Express Node js work, but phpmyadmin doesn't work.
Below is my docker-compose file:
version: '3.7'services: mysql_db: image: mysql container_name: mysql_container restart: always cap_add: - SYS_NICE volumes: - ./data:/var/lib/mysql ports: - "3306:3306" env_file: - .env environment: MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}" MYSQL_HOST: "${MYSQL_HOST}" MYSQL_DATABASE: "${MYSQL_DATABASE}" MYSQL_USER: "${MYSQL_USER}" MYSQL_PASSWORD: "${MYSQL_PASSWORD}" networks: - react_network phpmyadmin: depends_on: - mysql_db image: phpmyadmin/phpmyadmin:latest container_name: phpmyadmin_container restart: always ports: - "8080:80" env_file: - .env environment: - PMA_HOST=mysql_db - PMA_PORT=3306 - PMA_ABSOLUTE_URI=https://my-site.com/admin - PMA_ARBITRARY=1 - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} networks: - react_network api: restart: always image: mycustomimage ports: - "3001:80" container_name: server_container env_file: - .env depends_on: - mysql_db environment: MYSQL_HOST_IP: mysql_db networks: - react_network client: image: mycustomimage ports: - "3000:80" restart: always stdin_open: true environment: - CHOKIDAR_USEPOLLING=true container_name: client_container networks: - react_network nginx: depends_on: - api - client build: ./nginx container_name: nginx_container restart: always ports: - "443:443" - "80" volumes: - ./nginx/conf/certificate.crt:/etc/ssl/certificate.crt:ro - ./nginx/certs/private.key:/etc/ssl/private.key:ro - ./nginx/html:/usr/share/nginx/html networks: - react_networkvolumes: data: conf: certs: webconf: html:networks: react_network:
Below is my nginx configuration file:
upstream client { server client:3000;}upstream api { server api:3001;}server { listen 443 ssl http2; server_name my-site.com; ssl_certificate /etc/ssl/certificate.crt; ssl_certificate_key /etc/ssl/private.key; location / { proxy_pass http://client; } location /admin { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://phpmyadmin:8080; } location /sockjs-node { proxy_pass http://client; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } location /api { rewrite /api/(.*) /$1 break; proxy_pass http://api; }}server { listen 80; server_name my-site.com www.my-site.com; return 301 https://my-site.com$request_uri;}
I honestly don't know what I'm missing here! If anyone can help me please!!