Bug: sam build problem in Rancher Desktop
- Dominant language
- Python
- Stars
- 6.7k
- Forks
- 1.2k
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 52
Description
### Description:
I am trying to build an AWS python lambda function in a container for debugging.
When executing sam build --use-container an error is generated because dependencies are not build.
This is because it says it cannot find the requirements.txt file.
The requirements.txt file is present.
The complete setup worked without any change under Docker Desktop, so it looks like it is Rancher related.
### Steps to reproduce:
Install rancher desktop.
Container runtime is set to dockerd (moby)
Exposed Rancher Desktop Kubernetes configuration an docker socket to WSL is set to Ubuntu-20.04
Kubernetes version is set to 1.24.3
### Observed result:
PS C:\Repositories\fgs-asset-information\Kadaster\kadaster-sam-app> sam build --use-container --debug
2022-08-18 14:43:37,696 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics
2022-08-18 14:43:37,696 | Using config file: samconfig.toml, config environment: default
2022-08-18 14:43:37,697 | Expand command line arguments to:
2022-08-18 14:43:37,697 | --template_file=C:\Repositories\fgs-asset-information\Kadaster\kadaster-sam-app\template.yaml --use_container --build_dir=.aws-sam\build --cache_dir=.aws-sam\cache
2022-08-18 14:43:38,716 | 'build' command is called
2022-08-18 14:43:38,716 | Starting Build inside a container
2022-08-18 14:43:38,719 | No Parameters detected in the template
2022-08-18 14:43:38,734 | There is no customer defined id or cdk path defined for resource ProcessMail2021, so we will use the resource logical id as the resource id
2022-08-18 14:43:38,734 | There is no customer defined id or cdk path defined for resource KadasterMetingParse2021, so we will use the resource logical id as the resource id
2022-08-18 14:43:38,735 | 0 stacks found in the template
2022-08-18 14:43:38,735 | No Parameters detected in the template
2022-08-18 14:43:38,743 | There is no customer defined id or cdk path defined for resource ProcessMail2021, so we will use the resource logical id as the resource id
2022-08-18 14:43:38,744 | There is no customer defined id or cdk path defined for resource KadasterMetingParse2021, so we will use the resource logical id as the resource id
2022-08-18 14:43:38,744 | 2 resources found in the stack
2022-08-18 14:43:38,744 | Found Serverless function with name='ProcessMail2021' and CodeUri='ProcessMail2021/'
2022-08-18 14:43:38,745 | --base-dir is not presented, adjusting uri ProcessMail2021/ relative to C:\Repositories\fgs-asset-information\Kadaster\kadaster-sam-app\template.yaml
2022-08-18 14:43:38,745 | Found Serverless function with name='KadasterMetingParse2021' and CodeUri='KadasterMetingParse2021/'
2022-08-18 14:43:38,745 | --base-dir is not presented, adjusting uri KadasterMetingParse2021/ relative to C:\Repositories\fgs-asset-information\Kadaster\kadaster-sam-app\template.yaml
2022-08-18 14:43:38,749 | Instantiating build definitions
2022-08-18 14:43:38,752 | Same function build definition found, adding function (Previous: BuildDefinition(python3.8, C:\Repositories\fgs-asset-information\Kadaster\kadaster-sam-app\ProcessMail2021, Zip, , 22fa8c0f-c842-4add-b22b-b61dd32be94c, {}, {}, x86_64, []), Current: BuildDefinition(python3.8, C:\Repositories\fgs-asset-information\Kadaster\kadaster-sam-app\ProcessMail2021, Zip, , 8cbbde39-4ccc-435d-894f-5f8b6b4f9c16, {}, {}, x86_64, []), Function: Function(function_id='ProcessMail2021', name='ProcessMail2021', functionname='ProcessMail2021', runtime='python3.8', memory=None, timeout=3, handler='ProcessMail.lambda_handler', imageuri=None, packagetype='Zip', imageconfig=None, codeuri='C:\\Repositories\\fgs-asset-information\\Kadaster\\kadaster-sam-app\\ProcessMail2021', environment=None, rolearn=None, layers=[], events=None, metadata={'SamResourceId': 'ProcessMail2021'}, inlinecode=None, codesign_config_arn=None, architectures=None, function_url_config=None, stack_path=''))
2022-08-18 14:43:38,753 | Same function build definition found, adding function (Previous: BuildDefinition(python3.8, C:\Repositories\fgs-asset-information\Kadaster\kadaster-sam-app\KadasterMetingParse2021, Zip, , cf40a036-b307-460c-bc2d-55033f694430, {}, {}, x86_64, []), Current: BuildDefinition(python3.8, C:\Repositories\fgs-asset-information\Kadaster\kadaster-sam-app\KadasterMetingParse2021, Zip, , 289c9d91-2cfe-4189-a0ba-08a2ffc51318, {}, {}, x86_64, []), Function: Function(function_id='KadasterMetingParse2021', name='KadasterMetingParse2021', functionname='KadasterMetingParse2021', runtime='python3.8', memory=None, timeout=3, handler='Kadaster_MetingParse.lambda_handler', imageuri=None, packagetype='Zip', imageconfig=None, codeuri='C:\\Repositories\\fgs-asset-information\\Kadaster\\kadaster-sam-app\\KadasterMetingParse2021', environment=None, rolearn=None, layers=[], events=None, metadata={'SamResourceId': 'KadasterMetingParse2021'}, inlinecode=None, codesign_config_arn=None, architectures=None, function_url_config=None, stack_path=''))
2022-08-18 14:43:38,754 | Building codeuri: C:\Repositories\fgs-asset-information\Kadaster\kadaster-sam-app\ProcessMail2021 runtime: python3.8 metadata: {} architecture: x86_64 functions: ProcessMail2021
2022-08-18 14:43:38,756 | Building to following folder C:\Repositories\fgs-asset-information\Kadaster\kadaster-sam-app\.aws-sam\build\ProcessMail2021
Fetching public.ecr.aws/sam/build-python3.8:latest-x86_64 Docker container image......
2022-08-18 14:43:40,230 | Mounting C:\Repositories\fgs-asset-information\Kadaster\kadaster-sam-app\ProcessMail2021 as /tmp/samcli/source:ro,delegated inside runtime container
Using the request object from command line argument
Loading workflow module 'aws_lambda_builders.workflows'
Registering workflow 'PythonPipBuilder' with capability 'Capability(language='python', dependency_manager='pip', application_framework=None)'
Registering workflow 'NodejsNpmBuilder' with capability 'Capability(language='nodejs', dependency_manager='npm', application_framework=None)'
Registering workflow 'RubyBundlerBuilder' with capability 'Capability(language='ruby', dependency_manager='bundler', application_framework=None)'
Registering workflow 'GoModulesBuilder' with capability 'Capability(language='go', dependency_manager='modules', application_framework=None)'
Registering workflow 'JavaGradleWorkflow' with capability 'Capability(language='java', dependency_manager='gradle', application_framework=None)'
Registering workflow 'JavaMavenWorkflow' with capability 'Capability(language='java', dependency_manager='maven', application_framework=None)'
Registering workflow 'DotnetCliPackageBuilder' with capability 'Capability(language='dotnet', dependency_manager='cli-package', application_framework=None)'
Registering workflow 'CustomMakeBuilder' with capability 'Capability(language='provided', dependency_manager=None, application_framework=None)'
Registering workflow 'NodejsNpmEsbuildBuilder' with capability 'Capability(language='nodejs', dependency_manager='npm-esbuild', application_framework=None)'
Found workflow 'PythonPipBuilder' to support capabilities 'Capability(language='python', dependency_manager='pip', application_framework=None)'
requirements.txt file not found. Continuing the build without dependencies.
Running workflow 'PythonPipBuilder'
Running PythonPipBuilder:CopySource
Creating target folders at /tmp/samcli/artifacts
Copying directory metadata from source (/tmp/samcli/source) to destination (/tmp/samcli/artifacts)
PythonPipBuilder:CopySource succeeded
2022-08-18 14:43:40,829 | Sending Telemetry: {'metrics': [{'commandRun': {'requestId': '33afc1f0-1091-47c2-b3ce-971cc2d2d4b7', 'installationId': '73f2b68e-1de6-4d57-9b90-0cb69a0ecdf3', 'sessionId': 'c1e8073f-1048-48b1-a264-de2d2c24486c', 'executionEnvironment': 'CLI', 'ci': False, 'pyversion': '3.8.8', 'samcliVersion': '1.55.0', 'awsProfileProvided': False, 'debugFlagProvided': True, 'region': '', 'commandName': 'sam build', 'metricSpecificAttributes': {'projectType': 'CFN'}, 'duration': 3131, 'exitReason': 'error', 'exitCode': 255}}]}
2022-08-18 14:43:41,460 | HTTPSConnectionPool(host='aws-serverless-tools-telemetry.us-west-2.amazonaws.com', port=443): Read timed out. (read timeout=0.1)
Traceback (most recent call last):
File "runpy.py", line 194, in _run_module_as_main
File "runpy.py", line 87, in _run_code
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\__main__.py", line 12, in
cli(prog_name="sam")
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 829, in __call__
return self.main(*args, **kwargs)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 782, in main
rv = self.invoke(ctx)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 1259, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 1066, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\decorators.py", line 73, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\click\core.py", line 610, in invoke
return callback(*args, **kwargs)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metric.py", line 166, in wrapped
raise exception # pylint: disable=raising-bad-type
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metric.py", line 124, in wrapped
return_value = func(*args, **kwargs)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\utils\version_checker.py", line 41, in wrapped
actual_result = func(*args, **kwargs)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\cli\main.py", line 87, in wrapper
return func(*args, **kwargs)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 182, in cli
do_cli(
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 262, in do_cli
ctx.run()
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 251, in run
build_result = builder.build()
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\build\app_builder.py", line 221, in build
return ApplicationBuildResult(build_graph, build_strategy.build())
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\build\build_strategy.py", line 80, in build
result.update(self._build_functions(self._build_graph))
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\build\build_strategy.py", line 90, in _build_functions
function_build_results.update(self.build_single_function_definition(build_definition))
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\build\build_strategy.py", line 163, in build_single_function_definition
result = self._build_function(
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\build\app_builder.py", line 645, in _build_function
return self._build_function_on_container(
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\build\app_builder.py", line 831, in _build_function_on_container
container.wait_for_logs(stdout=stdout_stream, stderr=stderr_stream)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\local\docker\container.py", line 335, in wait_for_logs
self._write_container_output(logs_itr, stdout=stdout, stderr=stderr)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\local\docker\container.py", line 400, in _write_container_output
for stdout_data, stderr_data in output_itr:
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\types\daemon.py", line 32, in __next__
return next(self._stream)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\api\client.py", line 406, in
gen = (demux_adaptor(*frame) for frame in gen)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\utils\socket.py", line 94, in frames_iter_no_tty
(stream, n) = next_frame_header(socket)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\utils\socket.py", line 66, in next_frame_header
data = read_exactly(socket, 8)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\utils\socket.py", line 51, in read_exactly
next_data = read(socket, n - len(data))
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\utils\socket.py", line 35, in read
return socket.recv(n)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\transport\npipesocket.py", line 23, in wrapped
return f(self, *args, **kwargs)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\docker\transport\npipesocket.py", line 117, in recv
err, data = win32file.ReadFile(self._handle, bufsize)
pywintypes.error: (109, 'ReadFile', 'The pipe has been ended.')
### Expected result:
A build lambda ready for debugging
### Additional environment details (Ex: Windows, Mac, Amazon Linux etc)
1. OS: Windows 10 Enterprise edition
2. `sam --version`: SAM CLI, version 1.55.0
3. AWS region: eu-central-1
`Add --debug flag to command you are running`
Contributor guide
Assessment
This issue has not been assessed yet.