diff --git a/docker/base-image/Dockerfile b/docker/base-image/Dockerfile index 5a3d6933..a9c6a359 100644 --- a/docker/base-image/Dockerfile +++ b/docker/base-image/Dockerfile @@ -4,7 +4,7 @@ ENV DEBIAN_FRONTEND=noninteractive COPY ./install /app/install RUN bash /app/install/deps/deps.sh && \ bash /app/install/python/python.sh && \ - bash /app/install/golang/golang.sh && \ + bash /app/install/go/go.sh && \ bash /app/install/node/node.sh && \ bash /app/install/chromedriver/chromedriver.sh diff --git a/docker/base-image/install/go/go.sh b/docker/base-image/install/go/go.sh new file mode 100644 index 00000000..07087d19 --- /dev/null +++ b/docker/base-image/install/go/go.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +version="1.22.9" + +# install goenv +git clone https://github.com/go-nv/goenv.git ~/.goenv + +# add goenv to path +echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.bashrc +echo 'export PATH="$GOENV_ROOT/bin:$PATH"' >> ~/.bashrc +echo 'eval "$(goenv init -)"' >> ~/.bashrc + +# ensure changes take effect immediately +export GOENV_ROOT="$HOME/.goenv" +export PATH="$GOENV_ROOT/bin:$PATH" +eval "$(goenv init -)" + +# install go +goenv install ${version} +goenv global ${version} + +# verify +go_version=$(go version) +if [[ $go_version =~ "go${version}" ]]; then + : +else + echo "ERROR: go version does not match. expect \"go${version}\", but actual is \"${go_version}\"" + exit 1 +fi diff --git a/docker/base-image/install/golang/golang.sh b/docker/base-image/install/golang/golang.sh deleted file mode 100644 index 14fefbeb..00000000 --- a/docker/base-image/install/golang/golang.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -curl -OL https://golang.org/dl/go1.22.4.linux-amd64.tar.gz \ - && tar -C /usr/local -xvf go1.22.4.linux-amd64.tar.gz \ - && ln -s /usr/local/go/bin/go /usr/local/bin/go diff --git a/docker/base-image/install/node/node.sh b/docker/base-image/install/node/node.sh index 96a0cd27..e8caa419 100644 --- a/docker/base-image/install/node/node.sh +++ b/docker/base-image/install/node/node.sh @@ -5,10 +5,15 @@ version="22" # installs nvm (Node Version Manager) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash +# add nvm to path +echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.bashrc +echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm' >> ~/.bashrc +echo '[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> ~/.bashrc + # ensure changes take effect immediately export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm -[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion +[[ -s "$NVM_DIR/nvm.sh" ]] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[[ -s "$NVM_DIR/bash_completion" ]] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion # download and install Node.js (you may need to restart the terminal) nvm install ${version}