diff --git a/pkg/provider/provider.go b/pkg/provider/provider.go index 367305f..436894d 100644 --- a/pkg/provider/provider.go +++ b/pkg/provider/provider.go @@ -58,7 +58,7 @@ func (a *AWSProvider) Initialize(req provider.InitializeProviderRequest) (*util. a.ApiPort = &req.ApiPort a.ServerPort = &req.ServerPort a.LogsDir = &req.LogsDir - a.LocalSockDir = path.Join(tmpDir, "fly-socks") + a.LocalSockDir = path.Join(tmpDir, "aws-socks") return new(util.Empty), nil } @@ -109,7 +109,7 @@ func (a *AWSProvider) CreateWorkspace(workspaceReq *provider.WorkspaceRequest) ( logWriter.Write([]byte("Failed to dial: " + err.Error() + "\n")) return nil, err } - logWriter.Write([]byte("Workspace agent started.\n")) + logWriter.Write([]byte("Workspace agent started\n")) client, err := a.getDockerClient(workspaceReq.Workspace.Id) if err != nil { diff --git a/pkg/provider/util/aws.go b/pkg/provider/util/aws.go index 45abc40..6a6a035 100644 --- a/pkg/provider/util/aws.go +++ b/pkg/provider/util/aws.go @@ -20,17 +20,36 @@ func CreateWorkspace(workspace *workspace.Workspace, opts *types.TargetOptions, envVars["DAYTONA_AGENT_LOG_FILE_PATH"] = "/home/daytona/.daytona-agent.log" userData := `#!/bin/bash -set -e - -# Create daytona user and set up home directory -useradd -m -d /home/daytona daytona -echo "daytona ALL=(ALL) NOPASSWD:ALL" | tee /etc/sudoers.d/daytona +mkdir -p /home/daytona # Install Docker curl -fsSL https://get.docker.com | bash -# Add daytona user to docker group -usermod -aG docker daytona +# Move docker data dir +service docker stop +cat > /etc/docker/daemon.json << EOF +{ + "data-root": "/home/daytona/.docker-daemon", + "live-restore": true +} +EOF +# Make sure we only copy if volumes isn't initialized +if [ ! -d "/home/daytona/.docker-daemon" ]; then + mkdir -p /home/daytona/.docker-daemon + rsync -aP /var/lib/docker/ /home/daytona/.docker-daemon +fi +service docker start + +# Create Daytona user +useradd daytona -d /home/daytona -s /bin/bash +if grep -q sudo /etc/group; then + usermod -aG sudo,docker daytona +elif grep -q wheel /etc/group; then + usermod -aG wheel,docker daytona +fi + +echo "daytona ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/91-daytona +chown daytona:daytona /home/daytona ` for k, v := range envVars { @@ -58,8 +77,6 @@ WantedBy=multi-user.target' > /etc/systemd/system/daytona-agent.service systemctl daemon-reload systemctl enable daytona-agent.service systemctl start daytona-agent.service - -chown -R daytona:daytona /home/daytona ` result, err := client.RunInstances(&ec2.RunInstancesInput{