For ENTRYPOINT, as long as your image copies the launcher file (like
https://github.com/GoogleCloudPlatform/python-docs-samples/blob/main/dataflow/flex-templates/pipeline_with_dependencies/Dockerfile#L38),
you can just do `ENTRYPOINT ["/opt/apache/beam/boot"]`.
Again, using one container image is more convenient if you start managing
more Python package depecdencies.

On Mon, Nov 4, 2024 at 1:16 AM Henry Tremblay <paulhtremb...@gmail.com>
wrote:

> Sorry, yes, you are correct, though Google does not document this.
>
> 1. Formerly I can import pyscog and requests because they are in the
> worker image you linked to.
> 2. secretmanager cannot be imported because it is not in the worker image.
> 3. passing the parameter --parameters
> sdk_container_image=$IMAGE_URL_WORKER causes the worker to use the
> pre-built image
> 4. I cannot use the same Docker image for both launcher and worker because
> of the ENTRYPOINT
>
> On Sun, Nov 3, 2024 at 1:53 PM XQ Hu via user <user@beam.apache.org>
> wrote:
>
>> I think the problem is you do not specify sdk_container_image when
>> running your template.
>>
>>
>> https://github.com/GoogleCloudPlatform/python-docs-samples/tree/main/dataflow/flex-templates/pipeline_with_dependencies#run-the-template
>> has more details.
>>
>> Basically, you do not need to
>> https://github.com/paulhtremblay/data-engineering/blob/main/dataflow_/flex_proj_with_secret_manager/Dockerfile
>> for your template launcher.
>>
>> You can use the same image for both launcher and dataflow workers. You
>> only need to copy python_template_launcher to your image like
>> https://github.com/GoogleCloudPlatform/python-docs-samples/blob/main/dataflow/flex-templates/pipeline_with_dependencies/Dockerfile#L38.
>> Then you can use this image for both  launcher and dataflow workers. When
>> running the template job, you need to add --parameters
>> sdk_container_image=$SDK_CONTAINER_IMAGE.
>>
>>
>> On Sun, Nov 3, 2024 at 4:18 PM Henry Tremblay <paulhtremb...@gmail.com>
>> wrote:
>>
>>> A few weeks ago I had posted a problem I had with importing the Google
>>> Cloud Secret Manager library in Python.
>>>
>>> Here is the problem and solution:
>>>
>>>
>>> https://github.com/paulhtremblay/data-engineering/tree/main/dataflow_/flex_proj_with_secret_manager
>>>
>>> --
>>> Henry Tremblay
>>> Data Engineer, Best Buy
>>>
>>
>
> --
> Henry Tremblay
> Data Engineer, Best Buy
>

Reply via email to