diff --git a/go/main.go b/go/main.go index 88a0f00..41ba963 100644 --- a/go/main.go +++ b/go/main.go @@ -23,6 +23,7 @@ func main() { tasks.NewTestEnvironmentTask(), tasks.NewCurlLookupTask(), tasks.NewCodeSecurityScanTask(), + tasks.NewInstallDockerTask(), tasks.NewListDevToolCommandTask(config), } diff --git a/go/repositories/agent/build_docker_image.go b/go/repositories/agent/build_docker_image.go index 4db3e16..331f525 100644 --- a/go/repositories/agent/build_docker_image.go +++ b/go/repositories/agent/build_docker_image.go @@ -20,6 +20,9 @@ func (task *BuildDockerImageSubTask) Execute() error { utils.SuccessPrint(` ./dev.sh compile ./dev.sh build +---- +./dev.sh compile +docker build -t "portainerci/agent:oscar-alpine" -f build/linux/alpine.Dockerfile . `) return nil diff --git a/go/repositories/portainer-ee/menu.go b/go/repositories/portainer-ee/menu.go index d0691c7..45fcb4e 100644 --- a/go/repositories/portainer-ee/menu.go +++ b/go/repositories/portainer-ee/menu.go @@ -19,6 +19,7 @@ func (task *MenuSubTask) Execute() error { subTaskItems := []common.Tasker{ NewBuildDockerImageSubTask(task.Config), NewSwarmDeploySubTask(task.Config), + NewStandaloneDeploySubTask(task.Config), } common.ListCommandMenu(subTaskItems, "Which management commands do you want to choose:", false, task.ParentTasks) diff --git a/go/repositories/portainer-ee/standalone_deploy.go b/go/repositories/portainer-ee/standalone_deploy.go new file mode 100644 index 0000000..2a7eb65 --- /dev/null +++ b/go/repositories/portainer-ee/standalone_deploy.go @@ -0,0 +1,32 @@ +package portaineree + +import ( + "ocl/portainer-devtool/configs" + "ocl/portainer-devtool/tasks/common" + "ocl/portainer-devtool/utils" +) + +type StandaloneDeploySubTask struct { + common.GeneralTask +} + +func NewStandaloneDeploySubTask(cfg *configs.Config) *StandaloneDeploySubTask { + return &StandaloneDeploySubTask{ + GeneralTask: *common.NewGeneralTask(cfg), + } +} + +func (task *StandaloneDeploySubTask) Execute() error { + utils.SuccessPrint(` +yarn build +docker build -t "portainerci/portainer-ee:oscar-test" -f build/linux/linux.Dockerfile . +docker image tag portainerci/portainer-ee:oscar-test portainerci/portainer-ee:latest +docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v "/var/run/docker.sock:/var/run/docker.sock" -v /home/oscar/volume/portainer-ee-data-1:/data --add-host=host.docker.internal:host-gateway portainerci/portainer-ee:oscar-test + `) + + return nil +} + +func (task *StandaloneDeploySubTask) String() string { + return "Deploy Portainer in Docker Standalone" +} diff --git a/go/repositories/portainer-ee/swarm_deploy.go b/go/repositories/portainer-ee/swarm_deploy.go index 2e5a2fa..cd31c26 100644 --- a/go/repositories/portainer-ee/swarm_deploy.go +++ b/go/repositories/portainer-ee/swarm_deploy.go @@ -63,5 +63,5 @@ docker stack deploy -c docker-compose.yaml portainer } func (task *SwarmDeploySubTask) String() string { - return "Build Docker Image" + return "Deploy Portainer in Swarm" } diff --git a/go/tasks/install_docker.go b/go/tasks/install_docker.go new file mode 100644 index 0000000..30b541b --- /dev/null +++ b/go/tasks/install_docker.go @@ -0,0 +1,56 @@ +package tasks + +import ( + "ocl/portainer-devtool/tasks/common" + "ocl/portainer-devtool/utils" +) + +type InstallDockerTask struct { + ParentTasks []common.Tasker +} + +func NewInstallDockerTask() *InstallDockerTask { + return &InstallDockerTask{} +} + +func (task *InstallDockerTask) Execute() error { + + utils.SuccessPrint(` + sudo apt-get update + sudo apt-get install \ + ca-certificates \ + curl \ + gnupg \ + lsb-release + sudo mkdir -p /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null + sudo apt-get update + sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin + +------------------- + sudo apt install docker.io + +------------------- + sudo groupadd docker + sudo usermod -aG docker $USER + + multipass list + multipass shell + sudo passwd ubuntu + + newgrp docker + `) + + return nil +} + +func (task *InstallDockerTask) SetParentTaskers(tasks []common.Tasker) { + task.ParentTasks = tasks +} + +func (task *InstallDockerTask) String() string { + return "Install Docker Binary" +}