elegant-florist-94385
08/14/2024, 1:35 AMFROM $MY_ARG
instruction? (but not in a COPY --from=$MY_ARG <...>
instruction)
instructions = [
"ARG BASE_IMAGE=src/docker:python_base",
f"ARG DEPS_IMAGE=:{deps_name}",
f"ARG SRCS_IMAGE=:{srcs_name}",
"FROM $BASE_IMAGE",
'CMD ["/opt/app/pex"]',
"COPY --from=$DEPS_IMAGE /opt/app /opt/app",
"COPY --from=$SRCS_IMAGE /opt/app /opt/app",
]
elegant-florist-94385
08/14/2024, 1:35 AMinstructions = [
"ARG BASE_IMAGE=src/docker:python_base",
f"ARG DEPS_IMAGE=:{deps_name}",
f"ARG SRCS_IMAGE=:{srcs_name}",
"FROM $SRCS_IMAGE",
"FROM $DEPS_IMAGE",
"FROM $BASE_IMAGE",
'CMD ["/opt/app/pex"]',
"COPY --from=$DEPS_IMAGE /opt/app /opt/app",
"COPY --from=$SRCS_IMAGE /opt/app /opt/app",
]
Seems to work (note the extra FROM statements). Which seems a little unwieldy, but better than manually managing the dependencies and using actual docker image names in the instructionselegant-florist-94385
08/14/2024, 1:44 AMelegant-florist-94385
08/14/2024, 1:45 AMinstructions = [
"ARG BASE_IMAGE=src/docker:python_base",
f"ARG DEPS_IMAGE=:{deps_name}",
f"ARG SRCS_IMAGE=:{srcs_name}",
"FROM $SRCS_IMAGE AS SRCS",
"FROM $DEPS_IMAGE AS DEPS",
"FROM $BASE_IMAGE",
'CMD ["/opt/app/pex"]',
"COPY --from=DEPS /opt/app /opt/app",
"COPY --from=SRCS /opt/app /opt/app",
]
elegant-florist-94385
08/14/2024, 1:45 AMelegant-florist-94385
08/14/2024, 1:51 AMrough-motherboard-54854
08/14/2024, 10:31 AM<https://www.pantsbuild.org/blog/2022/08/02/optimizing-python-docker-deploys-using-pants>
elegant-florist-94385
08/14/2024, 11:20 AMCOPY --from=<image>
statements could not reference docker_image
targets, but rather had to reference tagged images (with registry/repository:tag
) information.rough-motherboard-54854
08/16/2024, 10:35 PM