I just started using CodeCatalyst and tried to setup a custom Dev Environment for it.
I have created a docker image from the Universal Image 2.0, removed php 7, installed php 5.6 (fedora/ius.io) with the required apache modules. On local testing that image works as expected.
I deployed that image to a public ECR repostitory (public.ecr.aws/q6u2b1h2/switched-on-systems) and using the following devfile.yaml (in my repository):
schemaVersion: 2.0.0
metadata:
name: al2
components:
- name: aws-runtime
container:
image: public.ecr.aws/q6u2b1h2/switched-on-systems:latest
mountSources: true
volumeMounts:
- name: docker-store
path: /var/lib/docker
- name: docker-store
volume:
size: 16Gi
commands:
- id: configApache
exec:
component: aws-runtime
commandLine: "sudo cp apache-project.conf /etc/httpd/conf.d/project.conf"
workingDir: /projects/perrygolf.com
- id: startApache
exec:
component: aws-runtime
commandLine: "sudo apachectl start"
workingDir: /projects/perrygolf.com
events:
postStart:
And starting a VisualCode dev environment it produces the following log, which besides what seems like a timeout issue does not seem to provide a clear reason for the failure:
2024-01-06 21:55:28 [INFO]: log level: info
2024-01-06 21:55:28 [INFO]: endpoints: retrieving AWS endpoints data
2024-01-06 21:55:28 [INFO]: OS: Linux x64 6.2.0-39-generic
2024-01-06 21:55:28 [INFO]: Visual Studio Code extension host: 1.71.1
2024-01-06 21:55:28 [INFO]: AWS Toolkit: 2.4.0
2024-01-06 21:55:28 [INFO]: node: 16.14.2
2024-01-06 21:55:28 [INFO]: electron: 19.0.12
2024-01-06 21:55:28 [INFO]: telemetry cache not found: '/home/roland/.config/Code/User/globalStorage/amazonwebservices.aws-toolkit-vscode/telemetryCache'
2024-01-06 21:55:28 [WARN]: AwsContext: no default region in credentials profile, falling back to us-east-1:
2024-01-06 21:55:29 [INFO]: using CodeCatalyst service configuration: default
2024-01-06 21:55:30 [WARN]: Metric Event did not pass validation: Metric toolkit_init
was emitted without the result
property. This property is always required. Consider using .run()
instead of .emit()
, which will set these properties automatically. See https://github.com/aws/aws-toolkit-vscode/blob/master/docs/telemetry.md#guidelines
2024-01-06 21:55:30 [INFO]: Command: (not started) [session-manager-plugin --version]
2024-01-06 21:55:30 [INFO]: Command: (not started) [/home/roland/.config/Code/User/globalStorage/amazonwebservices.aws-toolkit-vscode/tools/Amazon/sessionmanagerplugin/bin/session-manager-plugin --version]
2024-01-06 21:55:30 [INFO]: tryRun: ok: PID 222129: [ssh -G x]
2024-01-06 21:55:30 [INFO]: tryRun: ok: PID 222124: [/usr/share/code/bin/code --version] {
exitCode: 0,
stdout: '1.71.1\ne7f30e38c5a4efafeec8ad52861eb772a9ee4dfb\nx64',
stderr: '',
error: undefined,
signal: undefined
}
2024-01-06 21:55:31 [INFO]: Command: (not started) [ssh -G ....[Substitute illegal phrase]env-test]
2024-01-06 21:58:37 [ERROR]: API request failed (time: 604ms): startDevEnvironment
params: {
id: 'fe71add9-9e75-4cf1-9001-16b84f430c51',
spaceName: 'Cloud-Acute',
projectName: 'PerryGolf'
}
error: {
message: 'Cannot start Dev Environment because create process is still going on',
code: 'ConflictException',
'[__type]': 'See error.__type for details.',
time: 2024-01-06T21:58:37.499Z,
statusCode: 409,
retryable: false,
retryDelay: 16.717627295322224
}
headers: {
'x-amzn-requestid': '8ac0d4c2-9f50-48a0-b836-45238fb4f84d',
'x-amzn-trace-id': undefined,
'x-amzn-served-from': 'eu-west-1,eu-west-1',
'x-cache': 'Error from cloudfront',
'x-amz-cf-id': '9Fm6FR4O490NEAmmqGtnhTPVgG2hanG1kxhklUsrUhxnpr8WTybapA==',
'x-amz-cf-pop': 'LHR61-C2'
}
2024-01-06 21:58:37 [INFO]: devenv not started (ConflictException), waiting (time: 186.482s): fe71add9-9e75-4cf1-… [STARTING/186004ms]
2024-01-06 21:58:43 [ERROR]: API request failed (time: 623ms): startDevEnvironment
params: {
id: 'fe71add9-9e75-4cf1-9001-16b84f430c51',
spaceName: 'Cloud-Acute',
projectName: 'PerryGolf'
}
error: {
message: 'Cannot start Dev Environment because start process is still going on',
code: 'ConflictException',
'[__type]': 'See error.__type for details.',
time: 2024-01-06T21:58:43.695Z,
statusCode: 409,
retryable: false,
retryDelay: 4.186117617426355
}
headers: {
'x-amzn-requestid': '1ad409f7-9f95-4772-a255-a0bfe09fe56d',
'x-amzn-trace-id': undefined,
'x-amzn-served-from': 'eu-west-1,eu-west-1',
'x-cache': 'Error from cloudfront',
'x-amz-cf-id': 'tXM3MD7BjeO-zs8uGrDI5yzUPQYhOTslPCNcwlLP60d6-23w4z2j7g==',
'x-amz-cf-pop': 'LHR61-C2'
}
2024-01-06 21:58:43 [INFO]: devenv not started (ConflictException), waiting (time: 192.673s, startAttempts: 3): fe71add9-9e75-4cf1-… [STARTING/186004ms FAILED/3896ms STARTING/2295ms]
2024-01-06 21:58:54 [ERROR]: devenv failed to start (time: 203.755s, startAttempts: 7): fe71add9-9e75-4cf1-… [STARTING/186004ms FAILED/3896ms STARTING/2295ms FAILED/11083ms]
2024-01-06 21:58:54 [ERROR]: aws.codecatalyst.openDevEnv: Error: Dev Environment failed to start (FAILED): fe71add9-9e75-4cf1-… [FailedDevEnv]
2024-01-06 21:59:00 [WARN]: Metric Event did not pass validation: Metric toolkit_viewLogs
was emitted without the result
property. This property is always required. Consider using .run()
instead of .emit()
, which will set these properties automatically. See https://github.com/aws/aws-toolkit-vscode/blob/master/docs/telemetry.md#guidelines
2024-01-06 22:00:29 [INFO]: telemetry: sent batch (size=8)
This dev environment is not in a VPC and creating a dev environment for Cloud9 fails equally ... even so without the log.
Any help would be appreciated.
Regards,
Roland