- Docker on Windows
- Elton Stoneman
- 255字
- 2021-07-02 19:53:23
Separating dependencies
In the last chapter, I dockerized the legacy NerdDinner app and got it running but without a database. The original application expected to use SQL Server LocalDB on the same host where the app is running. LocalDB is an MSI-based installation, and I can add it to the Docker image, just by downloading the MSI and installing it with RUN commands in the Dockerfile. But this means that when I start a container from the image, it has two functions hosting a web application and running a database.
Instead, I'm going to package the database in a new Docker image and run it in a separate container using Docker's network layer to access the database container from the website container. SQL Server is a licensed product, but the free variant, SQL Server Express, is available from Microsoft as an image on the Docker Hub and comes with a production license. I can use that as the base for my image, building on it to prepare a pre-configured database instance, with the schema deployed and ready to connect to the web application.