When I try to re-run sam build --use-container I seem to need to wait an indeterminate length of time before it will work again.
I either receive:
OSError: [WinError 145] The directory is not empty: '.aws-sam\\build'
or
PermissionError: [WinError 5] Access is denied: '.aws-sam\\build\\CustomMetricDeliveryCloudwatchFunction'
The OSError happens first, and then every time after that, until it finaly works again I receive the PermissionError
sam build --use-containersam local invokesam build --use-container> sam build --use-container
Starting Build inside a container
Traceback (most recent call last):
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 193, in _run_module_as_main
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 85, in _run_code
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\__main__.py", line 12, in <module>
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)
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\metrics.py", line 96, in wrapped
raise exception # pylint: disable=raising-bad-type
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metrics.py", line 62, in wrapped
return_value = func(*args, **kwargs)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 129, in cli
mode,
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 179, in do_cli
mode=mode,
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 69, in __enter__
self._build_dir = self._setup_build_dir(self._build_dir, self._clean)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 91, in _setup_build_dir
shutil.rmtree(build_dir)
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 516, in rmtree
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 404, in _rmtree_unsafe
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 402, in _rmtree_unsafe
OSError: [WinError 145] The directory is not empty: '.aws-sam\\build'
> sam build --use-container --debug
Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics
'build' command is called
Starting Build inside a container
No Parameters detected in the template
2 resources found in the template
Found Serverless function with name='CustomMetricDeliveryCloudwatchFunction' and CodeUri='cloudwatch_metric_delivery/'
No Parameters detected in the template
Sending Telemetry: {'metrics': [{'commandRun': {'awsProfileProvided': False, 'debugFlagProvided': True, 'region': '', 'commandName': 'sam build', 'duration': 82, 'exitReason': 'PermissionError', 'exitCode': 255, 'requestId': '45bd311d-8076-44b1-bff8-25b15bda4642', 'installationId': '70ce78ee-79f5-4ef9-867e-02893e68d012', 'sessionId': 'e404098b-88c9-4f95-ba3c-e65ec6a99505', 'executionEnvironment': 'CLI', 'pyversion': '3.7.6', 'samcliVersion': '0.52.0'}}]}
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 "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 193, in _run_module_as_main
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 85, in _run_code
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\__main__.py", line 12, in <module>
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\metrics.py", line 96, in wrapped
raise exception # pylint: disable=raising-bad-type
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metrics.py", line 62, in wrapped
return_value = func(*args, **kwargs)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 129, in cli
mode,
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 179, in do_cli
mode=mode,
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 69, in __enter__
self._build_dir = self._setup_build_dir(self._build_dir, self._clean)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 91, in _setup_build_dir
shutil.rmtree(build_dir)
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 516, in rmtree
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 395, in _rmtree_unsafe
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 377, in _rmtree_unsafe
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 374, in _rmtree_unsafe
PermissionError: [WinError 5] Access is denied: '.aws-sam\\build\\CustomMetricDeliveryCloudwatchFunction'
A buillt version of the container
sam --version: SAM CLI, version 0.52.0 64bitSeems like it might be a Docker Desktop issue. I just restarted it and was able to build
Closing for now, it's definitely been observed that Windows and Docker don't always get along, including on the matter of file permissions. Please feel free to reopen if this issue recurs.
I created a bug on the Docker side if anyone is interested https://github.com/docker/for-win/issues/6938
The problem still exists for the newer version of Docker and SAM CLI - just for sam build (even without --use-container).
I also have a problem with sam build, and it is occuring every time once sam local invoke was called:
$ sam build
Traceback (most recent call last):
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 193, in _run_module_as_main
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\runpy.py", line 85, in _run_code
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\__main__.py", line 12, in <module>
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\metrics.py", line 148, in wrapped
raise exception # pylint: disable=raising-bad-type
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metrics.py", line 114, in wrapped
return_value = func(*args, **kwargs)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 129, in cli
mode,
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\command.py", line 179, in do_cli
mode=mode,
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 69, in __enter__
self._build_dir = self._setup_build_dir(self._build_dir, self._clean)
File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\build\build_context.py", line 91, in _setup_build_dir
shutil.rmtree(build_dir)
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 516, in rmtree
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 395, in _rmtree_unsafe
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 377, in _rmtree_unsafe
File "D:\obj\windows-release\37amd64_Release\msi_python\zip_amd64\shutil.py", line 374, in _rmtree_unsafe
PermissionError: [WinError 5] Access is denied: '.aws-sam\\build\\HelloWorldFunction'
$ docker --version
Docker version 19.03.12, build 48a66213fe
$ sam --version
SAM CLI, version 1.2.0
Most helpful comment
Seems like it might be a Docker Desktop issue. I just restarted it and was able to build