# clean build and skip test
./gradlew clean build -x test
docker build -t url-shortener -f Dockerfile .
docker-compose
docker.io
# For Debian
sudo apt install -y \
docker.io \
docker-compose
Update docker-compose.yml
if needed, such as PASSWORD environment variables.
Then run the application along with the database by executing:
docker-compose -f docker-compose.yml up
Volume does not mount to host path by default, therefore data will be erased when the database container is killed.
curl --location --request POST 'http://localhost:8080/' \
--header 'Content-Type: application/json' \
--data-raw '{
"url": "https://youtube.com"
}'
curl --location --request GET 'http://localhost:8080'
curl --location --request GET 'http://localhost:8080/<shortenUrl>'
HTTP response code should be 304 NOT_MODIFIED
curl -o /dev/null -s -w "%{http_code}\n" 'http://localhost:8080/<shortenUrl>'