#!/usr/bin/env bash# Licensed to the LF AI & Data foundation under one# or more contributor license agreements. See the NOTICE file# distributed with this work for additional information# regarding copyright ownership. The ASF licenses this file# to you under the Apache License, Version 2.0 (the# "License"); you may not use this file except in compliance# with the License. You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing, software# distributed under the License is distributed on an "AS IS" BASIS,# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.# See the License for the specific language governing permissions and# limitations under the License.SOURCE="${BASH_SOURCE[0]}"while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlinkDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"SOURCE="$(readlink "$SOURCE")"[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was locateddoneROOT_DIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )"export OS_NAME="${OS_NAME:-ubuntu20.04}"unameOut="$(uname -s)"case "${unameOut}" inLinux*) machine=Linux;;Darwin*) machine=Mac;;CYGWIN*) machine=Cygwin;;MINGW*) machine=MinGw;;*) machine="UNKNOWN:${unameOut}"esac# Attempt to run in the container with the same UID/GID as we have on the host,# as this results in the correct permissions on files created in the shared# volumes. This isn't always possible, however, as IDs less than 100 are# reserved by Debian, and IDs in the low 100s are dynamically assigned to# various system users and groups. To be safe, if we see a UID/GID less than# 500, promote it to 501. This is notably necessary on macOS Lion and later,# where administrator accounts are created with a GID of 20. This solution is# not foolproof, but it works well in practice.uid=$(id -u)gid=$(id -g)[ "$uid" -lt 500 ] && uid=501[ "$gid" -lt 500 ] && gid=$uidif [ "${1-}" = "build" ];thenCHECK_BUILDER=1fiif [ "${CHECK_BUILDER:-}" == "1" ];thenawk 'c&&c--{sub(/^/,"#")} /# Command/{c=3} 1' $ROOT_DIR/docker-compose.yml > $ROOT_DIR/docker-compose-devcontainer.ymlelseawk 'c&&c--{sub(/^/,"#")} /# Build devcontainer/{c=7} 1' $ROOT_DIR/docker-compose.yml > $ROOT_DIR/docker-compose-devcontainer.yml.tmpawk 'c&&c--{sub(/^/,"#")} /# Command/{c=3} 1' $ROOT_DIR/docker-compose-devcontainer.yml.tmp > $ROOT_DIR/docker-compose-devcontainer.ymlrm $ROOT_DIR/docker-compose-devcontainer.yml.tmpfiif [ "${machine}" == "Mac" ];thensed -i '' "s/# user: {{ CURRENT_ID }}/user: \"$uid:$gid\"/g" $ROOT_DIR/docker-compose-devcontainer.ymlelsesed -i "s/# user: {{ CURRENT_ID }}/user: \"$uid:$gid\"/g" $ROOT_DIR/docker-compose-devcontainer.ymlfipushd "$ROOT_DIR"mkdir -p "${DOCKER_VOLUME_DIRECTORY:-.docker}/amd64-${OS_NAME}-ccache"mkdir -p "${DOCKER_VOLUME_DIRECTORY:-.docker}/amd64-${OS_NAME}-go-mod"mkdir -p "${DOCKER_VOLUME_DIRECTORY:-.docker}/amd64-${OS_NAME}-vscode-extensions"mkdir -p "${DOCKER_VOLUME_DIRECTORY:-.docker}/amd64-${OS_NAME}-conan"chmod -R 777 "${DOCKER_VOLUME_DIRECTORY:-.docker}"if [ "${1-}" = "build" ];thendocker compose -f $ROOT_DIR/docker-compose-devcontainer.yml pull builderdocker compose -f $ROOT_DIR/docker-compose-devcontainer.yml build builderfiif [ "${1-}" = "up" ]; thendocker compose -f $ROOT_DIR/docker-compose-devcontainer.yml up -d $(docker compose config --services | grep -wv "gpubuilder")fiif [ "${1-}" = "down" ]; thendocker compose -f $ROOT_DIR/docker-compose-devcontainer.yml downfiif [ "${1-}" = "gpu" -a "${2-}" = "up" ]; thendocker compose -f $ROOT_DIR/docker-compose-devcontainer.yml up -d $(docker compose config --services | grep -wv "builder")fipopd
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。