Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Describe docker support state #8206

Merged
merged 5 commits into from
Jan 17, 2025
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ AWS Amplify Gen 2 functions are AWS Lambda functions that can be used to perform

<Callout warning>

**Note:** [Fullstack Git-based environments](https://docs.amplify.aws/react/how-amplify-works/concepts/#fullstack-git-based-environments) do not support Docker for functions bundling out of the box.
**Note:** [Fullstack Git-based environments](https://docs.amplify.aws/react/how-amplify-works/concepts/#fullstack-git-based-environments) do not support Docker for functions bundling out of the box. To learn more [skip to the Docker section](#Docker).

</Callout>

Expand Down Expand Up @@ -81,7 +81,7 @@ Next, create the corresponding handler file at `amplify/functions/say-hello/inde

```ts title="amplify/functions/say-hello/index.py"
import json

def handler(event, context):
return {
"statusCode": 200,
Expand All @@ -104,7 +104,7 @@ some-other-package>=1.0.0
You're now ready to deploy your python function. Next is the same process as the Node.js/TypeScript function. Go to [Common steps for all languages](#common-steps-for-all-languages) to continue.

## Go
To get started, Create a new directory and a resource file, `amplify/functions/say-hello/resource.ts`. Then, define the function with `defineFunction`:
To get started, Create a new directory and a resource file, `amplify/functions/say-hello/resource.ts`. Then, define the function with `defineFunction`:

```ts title="amplify/functions/say-hello/resource.ts"
import { execSync } from "node:child_process";
Expand Down Expand Up @@ -187,7 +187,7 @@ go mod tidy

You're now ready to deploy your golang function. Next is the same process as the Node.js/TypeScript function.

## Common steps for all languages
## Common steps for all languages

Regardless of the language used, your function needs to be added to your backend.
```ts title="amplify/backend.ts"
Expand Down Expand Up @@ -228,3 +228,25 @@ export const data = defineData({
},
})
```

## Docker

Custom function may require [Docker](https://www.docker.com/) in order to build and bundle function's code.
A deployment failing with `CustomFunctionProviderDockerError` error indicates that a custom function requires Docker but the
Docker daemon was not found. In that case you need to provide a working Docker installation at runtime.
sobolk marked this conversation as resolved.
Show resolved Hide resolved

### Personal sandboxes

Ensure that Docker is installed on your computer and that Docker daemon is running. You can check if Docker daemon is running using the following command:
```bash title="terminal" showLineNumbers={false}
docker info
```

### Fullstack Git-based environments

Amplify does not provide Docker daemon out of the box in branch deployments. However, you have an option to provide
[your own image that meets Amplify requirements](https://docs.aws.amazon.com/amplify/latest/userguide/custom-build-image.html)
and includes a Docker installation.

For example, the `aws/codebuild/amazonlinux-x86_64-standard:5.0` image (see definition [here](https://github.com/aws/aws-codebuild-docker-images))
meets Amplify requirements and includes Docker installation.
sobolk marked this conversation as resolved.
Show resolved Hide resolved
Loading