Using sqlite3 inside an aspnet5 docker image as web api persistence store.


In my previous post I used an in memory database as “persistence” for the web api service. That’s of course not a viable option. In this article I’ll explain how you can update the aspnet docker image in such a way you can use sqlite3. But let’s first check why you would want to use sqlite?

why sqlite?

For occasion you don’t want or need a full sql server. So, for demo or test purposes.

create and tweak docker image

sudo docker run -it -p 5000:5000 microsoft/aspnet /bin/bash  

Inside the docker image :

apt-get update
apt-get upgrade
apt-get install git nano
mkdir /github
cd github
git clone

Now basically, it would be only a matter of installing now sqlite3 via apt-get:

apt-get install  sqlite3 libsqlite3-dev

but that won’t work because it will install an outdated version of sqlite3.

Update sources.list

nano /etc/apt/sources.list

and add following line:

deb jessie main

run now

apt-get update
apt-get install  sqlite3 libsqlite3-dev

check if you have a version higher than 3.7.15.

root@e47451784bb8:/etc/apt# sqlite3
SQLite version 2014-10-29 13:59:56
Enter ".help" for usage hints.

You can press .exit for leaving the sqlit3 prompt.

provision the web api project

cd /github/AspNet5-Web-Api-Sample/src/Web-Api-Sample
dnvm use 1.0.0-beta7
dnu restore
dnu build

The last line (the build command) should reveal:

Build succeeded.
    0 Warning(s)
    0 Error(s)

If you are getting errors, … Houston you have a problem.

Run the web api project

dnx Kestrel

Browse now to http://localhost:5000/api/customer and you will see some data. You can generate additional dummy data by calling http://localhost:5000/api/customer/mimicCustomerImport/100. By doing so an additional 100 rows are created in the database.

comments powered by Disqus