[presets.docker] conditions = ["{{ 'Dockerfile' | file }}"] variables.docker_name = "{{ project_name }}" variables.docker_version = "{{ project_version }}" variables.docker_repo = "{{ 'DOCKER_REPO' | env }}" variables.docker_group = "{{ 'DOCKER_GROUP' | env }}" variables.docker_image = "{% if docker_group | bool %}{{ docker_group }}/{% endif %}{{ docker_name }}" variables.docker_tag = "{{ 'DOCKER_TAG' | env('latest') }}" variables.docker_target = "{{ 'DOCKER_TARGET' | env }}" variables.docker_target_arg = "{{ ('--target ' + docker_target) if docker_target else '' }}" # build [presets.docker.tasks.build.default] commands = ["docker build {{ docker_target_arg }} -t {{ docker_image }} . -f Dockerfile"] # publish version [presets.docker.tasks.publish.version] conditions = ["{{ docker_version and docker_repo }}"] commands = [ "docker tag {{ docker_image }} {{ docker_repo }}/{{ docker_image }}:{{ docker_version }}", "docker push {{ docker_repo }}/{{ docker_image }}:{{ docker_version }}", ] # publish tag [presets.docker.tasks.publish.tag] conditions = ["{{ docker_tag and docker_repo }}"] commands = [ "docker tag {{ docker_image }} {{ docker_repo }}/{{ docker_image }}:{{ docker_tag }}", "docker push {{ docker_repo }}/{{ docker_image }}:{{ docker_tag }}", ] # save [presets.docker.tasks.save.default] variables.docker_output = "./dist" commands = [ "mkdir -p {{ docker_output }}", "docker save --output {{ docker_output }}/{{ docker_name }}-{{ docker_version }}.tar {{ docker_image }}", ] # run [presets.docker.tasks.run.compose] conditions = ["{{ 'docker-compose.yaml' | file }}"] commands = ["docker compose -f docker-compose.yaml up"] # develop [presets.docker.tasks.develop.compose] conditions = ["{{ 'docker-compose-develop.yaml' | file }}"] commands = ["docker compose -f docker-compose-develop.yaml up --build --watch"]