)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"21ceb376362e79cf52988e84d952cc318a79d0de","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"cbc8452e_c4a0c070","updated":"2025-05-23 06:03:32.000000000","message":"recheck","commit_id":"4846d8ff891d2f2075983c8b50f2c11349e92ff5"}],"Dockerfile":[{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"b07d2012d5fcbde82d856e5e754fb6f0766a42d6","unresolved":true,"context_lines":[{"line_number":64,"context_line":"ADD bindep.txt pydep.txt $EXTRA_BINDEP $EXTRA_PYDEP /opt/loci/"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"FROM common AS requirements"},{"line_number":67,"context_line":"RUN /opt/loci/scripts/install.sh"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"FROM common AS project"},{"line_number":70,"context_line":"RUN --mount\u003dtype\u003dbind,from\u003dwheels,target\u003d${WHEELS_PATH} /opt/loci/scripts/install.sh"}],"source_content_type":"text/x-dockerfile","patch_set":7,"id":"c48d1606_95e48a5f","line":67,"range":{"start_line":67,"start_character":0,"end_line":67,"end_character":32},"updated":"2025-05-19 05:31:52.000000000","message":"do we need to run it here? we need to run install.sh only once when building project on L70","commit_id":"e13b7fcdd9744dc10e7672163e2202f8b22d55fb"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"3235bd4361ba1f59f5864da222e0df492b2cef2e","unresolved":true,"context_lines":[{"line_number":64,"context_line":"ADD bindep.txt pydep.txt $EXTRA_BINDEP $EXTRA_PYDEP /opt/loci/"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"FROM common AS requirements"},{"line_number":67,"context_line":"RUN /opt/loci/scripts/install.sh"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"FROM common AS project"},{"line_number":70,"context_line":"RUN --mount\u003dtype\u003dbind,from\u003dwheels,target\u003d${WHEELS_PATH} /opt/loci/scripts/install.sh"}],"source_content_type":"text/x-dockerfile","patch_set":7,"id":"c05c7e37_e56f4b6b","line":67,"range":{"start_line":67,"start_character":0,"end_line":67,"end_character":32},"in_reply_to":"c48d1606_95e48a5f","updated":"2025-05-19 16:52:50.000000000","message":"Yes we have to run it, because this is the main build script which compares the project name and if it is \"requirements\" then it runs the requirements.sh script. \nhttps://opendev.org/openstack/loci/src/branch/master/scripts/install.sh#L57-L60","commit_id":"e13b7fcdd9744dc10e7672163e2202f8b22d55fb"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"b07d2012d5fcbde82d856e5e754fb6f0766a42d6","unresolved":true,"context_lines":[{"line_number":67,"context_line":"RUN /opt/loci/scripts/install.sh"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"FROM common AS project"},{"line_number":70,"context_line":"RUN --mount\u003dtype\u003dbind,from\u003dwheels,target\u003d${WHEELS_PATH} /opt/loci/scripts/install.sh"}],"source_content_type":"text/x-dockerfile","patch_set":7,"id":"6cafe703_7233d47f","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":84},"updated":"2025-05-19 05:31:52.000000000","message":"can\u0027t we split this like\n```\nRUN --mount\u003dtype\u003dbind,from\u003dwheels,target\u003d${WHEELS_PATH}\nRUN /opt/loci/scripts/install.sh\n```","commit_id":"e13b7fcdd9744dc10e7672163e2202f8b22d55fb"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"5e47f4c5bc0ea4cc600f8f314ba479edd8970809","unresolved":true,"context_lines":[{"line_number":67,"context_line":"RUN /opt/loci/scripts/install.sh"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"FROM common AS project"},{"line_number":70,"context_line":"RUN --mount\u003dtype\u003dbind,from\u003dwheels,target\u003d${WHEELS_PATH} /opt/loci/scripts/install.sh"}],"source_content_type":"text/x-dockerfile","patch_set":7,"id":"e5f91851_3aed52ff","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":84},"in_reply_to":"52de4b68_9e19034b","updated":"2025-05-22 17:37:18.000000000","message":"If you don\u0027t specify the stage the last stage will be used by default. So when you run a command \n\n```\ndocker build -t barbican -f Dockerfile \\\n    --build-arg \"FROM\u003dbase\" \\\n    --build-arg \"PROJECT\u003dbarbican\" \\\n    --build-arg \"PROJECT_REF\u003dstable/2024.1\" \\\n    --build-arg \"KEEP_ALL_WHEELS\u003dyes\" \\\n    --build-arg \"WHEELS\u003dquay.io/airshipit/requirements:2024.1-ubuntu_jammy\" .\n```\n\nit will not build the requirements image but use the published image quay.io/airshipit/requirements:2024.1-ubuntu_jammy","commit_id":"e13b7fcdd9744dc10e7672163e2202f8b22d55fb"},{"author":{"_account_id":3009,"name":"Vladimir Kozhukalov","email":"kozhukalov@gmail.com","username":"kozhukalov"},"change_message_id":"3235bd4361ba1f59f5864da222e0df492b2cef2e","unresolved":true,"context_lines":[{"line_number":67,"context_line":"RUN /opt/loci/scripts/install.sh"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"FROM common AS project"},{"line_number":70,"context_line":"RUN --mount\u003dtype\u003dbind,from\u003dwheels,target\u003d${WHEELS_PATH} /opt/loci/scripts/install.sh"}],"source_content_type":"text/x-dockerfile","patch_set":7,"id":"e3d7b4a1_d20a5daa","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":84},"in_reply_to":"6cafe703_7233d47f","updated":"2025-05-19 16:52:50.000000000","message":"No, we can\u0027t because `--mount` is the option for the RUN instruction which runs a command.\n\nThis is a minimal change to get rid of using fetch_wheels.py script and instead use this `--mount` dockerfile feature. I am going to prepare more changes to make the code cleaner.","commit_id":"e13b7fcdd9744dc10e7672163e2202f8b22d55fb"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"89cb4f4b1e7208aa9498b86cf2bcde66b832cec9","unresolved":true,"context_lines":[{"line_number":67,"context_line":"RUN /opt/loci/scripts/install.sh"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"FROM common AS project"},{"line_number":70,"context_line":"RUN --mount\u003dtype\u003dbind,from\u003dwheels,target\u003d${WHEELS_PATH} /opt/loci/scripts/install.sh"}],"source_content_type":"text/x-dockerfile","patch_set":7,"id":"52de4b68_9e19034b","line":70,"range":{"start_line":70,"start_character":0,"end_line":70,"end_character":84},"in_reply_to":"e3d7b4a1_d20a5daa","updated":"2025-05-22 06:23:18.000000000","message":"maybe we can set WHEELS\u003dscratch by default, mounting this image will do nothing as its actually empty image, so we always can execute this mount step?\n\nBy default all images are built so when user does not specify exactly if he wants to build `project` or `requirements` image both will be built. And not sure this change is reflected in readme.","commit_id":"e13b7fcdd9744dc10e7672163e2202f8b22d55fb"}]}
