1

I'm currently working at a small company where we've had a lot of issues being on the same page with entity framework migrations and local databases. I want to start incorporating containers in hopes of standardizing everyone's development environment. Ideally, I'd like a disposable database that can be modeled using Entity Framework code first, seed data into it, then disposed of once the testing is done. What resources are there to help get me started and what other things should I know about standardizing the development environment.

  • What type of environment are you developing within? i.e. which Operating Systems do developers use? what is the database software in use - MSSQL, MySQL, PostgreSQL? – Richard Slater Oct 31 '19 at 17:29
  • The dev environment is a windows 2016 server vm because the application requires sharepoint 2016. We're using MSSQL for the database with Visual Studio 2019 as the IDE. The developers working on this are all using Windows 10. – avenmia Oct 31 '19 at 18:20
  • Are you wanting to run SharePoint in the Docker-ised Dev environment? – Richard Slater Oct 31 '19 at 18:36
  • I'm more focused on the database being containerized for now, but if there was a way to also run sharepoint in the docker-ised environment as well that would be cool. I'm not sure how I would get started with that yet though. – avenmia Oct 31 '19 at 18:38
  • I assume by that it means your not developing WebParts? – Richard Slater Oct 31 '19 at 18:40
1

Docker is an awesome tool for creating a database, seeding data into it, and disposing of it.

For an example check out Microsoft's SQL Server with Docker. The following would pull and run a sql server 2017 instance:

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=" 
   -p 1433:1433 --name sql1
   -d mcr.microsoft.com/mssql/server:2017-latest
After running this you now have a developer ready SQL instance that you can then connect to SQL Management Studio (or any other GUI management tool), or you can even connect via the command line.

If you are not using SQL you can run a container for the desired database type (check out the options on Dockerhub).

Once you have your database up and running, run the scripts to set it up, seed the data, and test without worrying about messing up your production database.

  • Thank you! Would it be possible to set up our own container image remotely that is the most up to date version that all the developers could then pull from and test against? – avenmia Oct 31 '19 at 18:21
  • Yes. You can create an image for the team and have everyone pull that from a repository you push it into. – Wesley Rolnick Oct 31 '19 at 19:56

Not the answer you're looking for? Browse other questions tagged or ask your own question.