POSTS
Using sqlite3 inside an aspnet5 docker image as web api persistence store.
introduction
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 https://github.com/paulvanbladel/AspNet5-Web-Api-Sample.git
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 http://ftp.us.debian.org/debian 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 3.8.7.1 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
export MONO_THREADS_PER_CPU=2000
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.