Solution
The solution to exercise 3
Congratulations!! You’ve made it this far. You can pat your back, because as you have done a wonderful job. Solving this exercise might have squeezed all your developer plus Docker knowledge, but you did not give up and that’s a good thing.
Even if you were not able to solve this exercise, but you’ve tried your best, kudos to you because this exercise was a little tricky one. So, let’s go through the solution and see what you might have missed.
version: '3' services: web: # Path to dockerfile. # '.' represents the current directory in which # docker-compose.yml is present. build: . # Mapping of container port to host ports: - "5000:5000" # Mount volume volumes: - "/usercode/:/exercise_3" # Link database container to app container # for rechability. links: - "database:exercisedb" command: ["flask", "run"] environment: - "FLASK_RUN_HOST=0.0.0.0" depends_on: - database database: # image to fetch from docker hub build: context: ./db dockerfile: Dockerfile-db #image: mysql/mysql-server:5.7 # Environment variables for startup script # container will use these variables # to start the container with these define variables. environment: - "MYSQL_ROOT_PASSWORD=root" - "MYSQL_USER=testuser" - "MYSQL_PASSWORD=admin123" - "MYSQL_DATABASE=backend" # Mount init.sql file to automatically run # and create tables for us. # everything in docker-entrypoint-initdb.d folder # is executed as soon as container is up nd running. volumes: - "/usercode/db/init.sql:/docker-entrypoint-initdb.d/init.sql"
Here, we will only see the new changes in ...