Docker compose for nginx, streamlit, and mariadb

Viewed 56

I am not exactly sure how to go about this. I have an instance in AWS Lightsail that has a static IP for which the IP department granted access to read from MariaDB database. I am using streamlit for my app and have stored my database credentials in a .env file. After, I have copied the file code and dockerized it (running the following command):

docker-compose up --build -d

It is built successfully, but when I use the static IP to look at the web page I get the following error:

OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 99] Cannot assign requested address)")

Is there something I have to do either in docker or with MariaDB? Thank you in advance.

File of docker-compose.yml:


version: '3'

services:
    app:
        container_name: app
        restart: always
        build: ./app
        ports:
            - "8501:8501"
        command: streamlit run Main.py

    database:
        image: mariadb:latest
        volumes:
        - /data/mysql:/var/lib/mysql
        restart: always
        env_file: .env

    nginx:
        container_name: nginx
        restart: always
        build: ./nginx
        ports:
            - "80:80"
        depends_on:
            - app
            - database                      

I am not sure how the streamlit app is connected with mariadb here.

0 Answers
Related