Mind Flow Productions

Systems & Productivity

ETR: 1 minute

This describes docker commands from Nick’s flask course. Enough information to build and run an app in Docker.

docker --version
docker-compose --version
docker-compose up --build
docker-compose stop

docker-compose up

docker images

docker-compose ps docker ps

docker rmi -f $(docker images -qf dangling=true)

[ docker images -qf dangling=true ]

docker rmi —help

docker system prune -a

docker-compose rm -f replace the above command with this one: docker-compose down which stops and cleans up the container docker-compose down -v also removes the volumes (such as the database)

docker network ls docker volume ls

docker volume rm volume_name_to_delete

docker-compose exec website snakeeyes docker-compose exec website snakeeyes test docker-compose exec website snakeeyes cov

docker-compose exec website py.test snakeeyes/tests docker-compose exec website py.test —cov-report term-missing —cov snakeeyes

docker-compose exec website flake8 . docker-compose exec website flake8 . —exclude init.py

docker-compose exec website snakeeyes flake8 docker-compose exec website snakeeyes flake8 —help docker-compose exec website snakeeyes flake8 —no-skip-init

docker-compose exec website snakeeyes db docker-compose exec website snakeeyes db reset —with-testdb

docker-compose exec website snakeeyes add docker-compose exec website snakeeyes add users docker-compose exec website snakeeyes add all

docker-compose exec website snakeeyes secret docker-compose exec website snakeeyes secret 64 docker-compose exec website snakeeyes routes docker-compose exec website snakeeyes loc

** snakeeyes user and snakeeyes database: docker-compose exec postgres psql -U snakeeyes snakeeyes brings up the psql command prompt for the snakeeyes database: snakeeyes=# snakeeyes=# \dt # to print out a list if the db tables

now lets show all active users:

snakeeyes=# select email,is_active from users;

select email,is_active from users where …;

Course Notes (can move elsewhere later)

Nick has a macro for pagination (snakeeyes/templates/macros/items.html) and in that code there are a few occurances of **args. This is so forms, searchboxes or column sorting, etc, do not lose their content when changing pages with the pagination.

<ul class="pagination">
    <li class="{{ 'disabled' if resource.page == 1 }}">
      <a href="{{ url_for(request.endpoint, page=1, **args) }}"
          aria-label="First">
        &laquo; First
      </a>
    </li>
    <li class="{{ 'disabled' if not resource.has_prev }}">
      <a href="{{ url_for(request.endpoint, page=resource.page - 1, **args) }}"
          aria-label="Previous">
        Prev
      </a>
    </li>
    ...