instruction: Create a Dockerfile for Python, Alpine Linux with production best practices
output: ```dockerfile
  From your project directory, start up your application by running docker compose up.
  
  $ docker compose up
  
  Creating network "composetest_default" with the default driver
  Creating composetest_web_1 ...
  Creating composetest_redis_1 ...
  Creating composetest_web_1
  Creating composetest_redis_1 ... done
  Attaching to composetest_web_1, composetest_redis_1
  web_1 | * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
  redis_1 | 1:C 17 Aug 22:11:10.480 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
  redis_1 | 1:C 17 Aug 22:11:10.480 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=1, just started
  redis_1 | 1:C 17 Aug 22:11:10.480 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
  web_1 | * Restarting with stat
  redis_1 | 1:M 17 Aug 22:11:10.483 * Running mode=standalone, port=6379.
  redis_1 | 1:M 17 Aug 22:11:10.483 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
  web_1 | * Debugger is active!
  redis_1 | 1:M 17 Aug 22:11:10.483 # Server initialized
  redis_1 | 1:M 17 Aug 22:11:10.483 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
  web_1 | * Debugger PIN: 330-787-903
  redis_1 | 1:M 17 Aug 22:11:10.483 * Ready to accept connections
  Compose pulls a Redis image, builds an image for your code, and starts the
  services you defined. In this case, the code is statically copied into the image at build time.Enter http://localhost:8000/ in a browser to see the application running.If this doesn't resolve, you can also try http://127.0.0.1:8000.You should see a message in your browser saying:
  
  Hello World! I have been seen 1 times.
  Refresh the page.The number should increment.
  
  Hello World! I have been seen 2 times.
  Switch to another terminal window, and type docker image ls to list local images.Listing images at this point should return redis and web.
  
  $ docker image ls
  
  REPOSITORY TAG IMAGE ID CREATED SIZE
  composetest_web latest e2c21aa48cc1 4 minutes ago 93.8MB
  python 3.4-alpine 84e6077c7ab6 7 days ago 82.5MB
  redis alpine 9d8fa9aa0e5b 3 weeks ago 27.5MB
  You can inspect images with docker inspect <tag or id>.Stop the application, either by running docker compose down
  ```