From 4ab8fc8d53a2d8fee54004b6e5a7126580825b23 Mon Sep 17 00:00:00 2001 From: changsh726 Date: Thu, 3 Jun 2021 21:44:17 +0800 Subject: [PATCH] updated runtime standalone functions --- .bazelignore | 1 - BUILD | 1 + cyber/.release.bash | 2 +- cyber/tools/BUILD | 3 +- cyber/tools/cyber_monitor/BUILD | 8 +++ docker/build/runtime.x86_64.dockerfile.sample | 2 +- docker/build/standalone.x86_64.dockerfile | 58 +++++++++---------- docker/build/standalone.x86_64.sh | 18 +----- docker/scripts/runtime_into_standalone.sh | 4 +- docker/scripts/runtime_start.sh | 16 +++-- docs/demo_guide/BUILD | 19 ++++++ modules/map/BUILD | 2 + modules/map/data/BUILD | 24 ++++++++ modules/tools/BUILD | 1 + modules/tools/visualizer/BUILD | 11 ++++ scripts/apollo_release.sh | 3 + 16 files changed, 109 insertions(+), 64 deletions(-) create mode 100644 docs/demo_guide/BUILD diff --git a/.bazelignore b/.bazelignore index c526f7a79c..920ca31c4b 100644 --- a/.bazelignore +++ b/.bazelignore @@ -1,3 +1,2 @@ .cache -docs docker/build diff --git a/BUILD b/BUILD index 75b660c080..726099b31d 100644 --- a/BUILD +++ b/BUILD @@ -15,6 +15,7 @@ install( "//cyber:install", "//cyber/examples:install", "//docker/scripts:install", + "//docs/demo_guide:install", "//modules/audio:install", "//modules/bridge:install", "//modules/canbus:install", diff --git a/cyber/.release.bash b/cyber/.release.bash index 0dcac08a67..f6e2173491 100755 --- a/cyber/.release.bash +++ b/cyber/.release.bash @@ -10,7 +10,7 @@ export CYBER_DOMAIN_ID=80 export CYBER_IP=127.0.0.1 export GLOG_log_dir="${APOLLO_ROOT_DIR}/data/log" -export GLOG_alsologtostderr=1 +export GLOG_alsologtostderr=0 export GLOG_colorlogtostderr=1 export GLOG_minloglevel=0 diff --git a/cyber/tools/BUILD b/cyber/tools/BUILD index ecb6aa6cd7..27f74bf83f 100644 --- a/cyber/tools/BUILD +++ b/cyber/tools/BUILD @@ -1,4 +1,5 @@ load("//tools/install:install.bzl", "install") + package( default_visibility = ["//visibility:public"], ) @@ -7,7 +8,7 @@ install( name = "install", deps = [ "//cyber/tools/cyber_launch:install", + "//cyber/tools/cyber_monitor:install", "//cyber/tools/cyber_recorder:install", ], ) - diff --git a/cyber/tools/cyber_monitor/BUILD b/cyber/tools/cyber_monitor/BUILD index b772845419..7a6e2e2938 100644 --- a/cyber/tools/cyber_monitor/BUILD +++ b/cyber/tools/cyber_monitor/BUILD @@ -1,8 +1,16 @@ load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") load("//tools:cpplint.bzl", "cpplint") +load("//tools/install:install.bzl", "install") package(default_visibility = ["//visibility:public"]) +install( + name = "install", + targets = [ + ":cyber_monitor", + ], +) + cc_binary( name = "cyber_monitor", srcs = [ diff --git a/docker/build/runtime.x86_64.dockerfile.sample b/docker/build/runtime.x86_64.dockerfile.sample index 6669b88195..e1b95a2085 100644 --- a/docker/build/runtime.x86_64.dockerfile.sample +++ b/docker/build/runtime.x86_64.dockerfile.sample @@ -57,7 +57,7 @@ RUN bash /opt/apollo/installers/install_mkl.sh # TODO(storypku): NodeJS COPY --from=devel /usr/local/fast-rtps /usr/local/fast-rtps COPY --from=devel /usr/local/libtorch_gpu /usr/local/libtorch_gpu -COPY --from=devel /usr/local/qt5/lib /usr/local/qt5/lib +COPY --from=devel /usr/local/qt5 /usr/local/qt5 COPY --from=devel /etc/ld.so.conf.d/qt.conf /etc/ld.so.conf.d/qt.conf COPY --from=devel /opt/apollo/pkgs /opt/apollo/pkgs COPY --from=devel /opt/apollo/sysroot/lib /opt/apollo/sysroot/lib diff --git a/docker/build/standalone.x86_64.dockerfile b/docker/build/standalone.x86_64.dockerfile index da96d3c036..2116a613b3 100644 --- a/docker/build/standalone.x86_64.dockerfile +++ b/docker/build/standalone.x86_64.dockerfile @@ -3,54 +3,48 @@ ARG TARGET_ARCH=x86_64 ARG IMAGE_VERSION=18.04-20210517_1712 ARG BASE_IMAGE=${DOCKER_REPO}:runtime-${TARGET_ARCH}-${IMAGE_VERSION} -ARG DOCKER_USER -ARG DOCKER_USER_ID -ARG DOCKER_GRP -ARG DOCKER_GRP_ID - FROM ${DOCKER_REPO}:data_volume-audio_model-${TARGET_ARCH}-latest as apollo_audio_volume FROM ${DOCKER_REPO}:yolov4_volume-emergency_detection_model-${TARGET_ARCH}-latest as apollo_yolov4_volume FROM ${DOCKER_REPO}:faster_rcnn_volume-traffic_light_detection_model-${TARGET_ARCH}-latest as apollo_faster_rcnn_volume FROM ${DOCKER_REPO}:smoke_volume-yolo_obstacle_detection_model-${TARGET_ARCH}-latest as apollo_smoke_volume +FROM ${DOCKER_REPO}:map_volume-sunnyvale_big_loop-latest as sunnyvale_big_loop_volume +FROM ${DOCKER_REPO}:map_volume-sunnyvale_loop-latest as sunnyvale_loop_volume +FROM ${DOCKER_REPO}:map_volume-sunnyvale_with_two_offices-latest as sunnyvale_with_two_offices_volume +FROM ${DOCKER_REPO}:map_volume-san_mateo-latest as san_mateo_volume + FROM ${BASE_IMAGE} -ENV DOCKER_USER=${DOCKER_USER:-apollo} -ENV DOCKER_USER_ID=${DOCKER_USER_ID:-1001} -ENV DOCKER_GRP=${DOCKER_GRP:-apollo} -ENV DOCKER_GRP_ID=${DOCKER_GRP_ID:-1001} - -# We need to copy output first to make sure that the top-level /apollo directory is also owned by ${DOCKER_USER_ID}:${DOCKER_GRP_ID}, -# because COPY --chown creates target directory as root and only chowns the files it copies. -# If we copy some volume first then /apollo is owned by root and different user will fail to create e.g. -# nohup.out or /apollo/data there (in runtime image it's overlayed by a volume from host, so it doesn't harm) -COPY \ - --chown=${DOCKER_USER_ID}:${DOCKER_GRP_ID} \ - output \ - /apollo - -COPY \ - --from=apollo_audio_volume \ - --chown=${DOCKER_USER_ID}:${DOCKER_GRP_ID} \ +COPY output /apollo + +COPY --from=apollo_audio_volume \ /apollo/modules/audio \ /apollo/modules/audio -COPY \ - --from=apollo_yolov4_volume \ - --chown=${DOCKER_USER_ID}:${DOCKER_GRP_ID} \ +COPY --from=apollo_yolov4_volume \ /apollo/modules/perception/camera/lib/obstacle/detector/yolov4 \ /apollo/modules/perception/camera/lib/obstacle/detector/yolov4 -COPY \ - --from=apollo_faster_rcnn_volume \ - --chown=${DOCKER_USER_ID}:${DOCKER_GRP_ID} \ +COPY --from=apollo_faster_rcnn_volume \ /apollo/modules/perception/production/data/perception/camera/models/traffic_light_detection \ /apollo/modules/perception/production/data/perception/camera/models/traffic_light_detection -COPY \ - --from=apollo_smoke_volume \ - --chown=${DOCKER_USER_ID}:${DOCKER_GRP_ID} \ +COPY --from=apollo_smoke_volume \ /apollo/modules/perception/production/data/perception/camera/models/yolo_obstacle_detector \ /apollo/modules/perception/production/data/perception/camera/models/yolo_obstacle_detector -RUN /apollo/scripts/docker_start_user.sh +COPY --from=sunnyvale_big_loop_volume \ + /apollo/modules/map/data/sunnyvale_big_loop \ + /apollo/modules/map/data/sunnyvale_big_loop + +COPY --from=sunnyvale_loop_volume \ + /apollo/modules/map/data/sunnyvale_loop \ + /apollo/modules/map/data/sunnyvale_loop + +COPY --from=sunnyvale_with_two_offices_volume \ + /apollo/modules/map/data/sunnyvale_with_two_offices \ + /apollo/modules/map/data/sunnyvale_with_two_offices + +COPY --from=san_mateo_volume \ + /apollo/modules/map/data/san_mateo \ + /apollo/modules/map/data/san_mateo diff --git a/docker/build/standalone.x86_64.sh b/docker/build/standalone.x86_64.sh index cd86e3cc55..103a0c107f 100755 --- a/docker/build/standalone.x86_64.sh +++ b/docker/build/standalone.x86_64.sh @@ -3,10 +3,6 @@ # Copyright (c) 2021 LG Electronics, Inc. All Rights Reserved DOCKER_REPO=apolloauto/apollo -DOCKER_USER=apollo -DOCKER_USER_ID=1001 -DOCKER_GRP=apollo -DOCKER_GRP_ID=1001 TARGET_ARCH=x86_64 IMAGE_VERSION=18.04-20210517_1712 DEV_IMAGE=${DOCKER_REPO}:dev-${TARGET_ARCH}-${IMAGE_VERSION} @@ -51,17 +47,8 @@ rm -f docker/build/syspkgs.txt mv output docker/build -mkdir -p docker/build/output/standalone-scripts/docker/scripts -cp docker/scripts/{runtime_start.sh,runtime_into_standalone.sh,docker_base.sh} docker/build/output/standalone-scripts/docker/scripts -mkdir -p docker/build/output/standalone-scripts/scripts -cp scripts/{common.bashrc,apollo_base.sh,apollo.bashrc} docker/build/output/standalone-scripts/scripts - docker build \ --build-arg BASE_IMAGE=${RUNTIME_IMAGE} \ - --build-arg DOCKER_USER=${DOCKER_USER} \ - --build-arg DOCKER_USER_ID=${DOCKER_USER_ID} \ - --build-arg DOCKER_GRP=${DOCKER_GRP} \ - --build-arg DOCKER_GRP_ID=${DOCKER_GRP_ID} \ -f docker/build/standalone.x86_64.dockerfile \ docker/build/ \ -t ${STANDALONE_IMAGE} @@ -69,7 +56,6 @@ docker build \ docker tag ${STANDALONE_IMAGE} ${STANDALONE_IMAGE_LATEST} /bin/echo -e "Docker image with prebuilt files was built and tagged as ${STANDALONE_IMAGE}, you can start it with: \n\ - cd docker/build/output/standalone-scripts - RUNTIME_STANDALONE_USER=${DOCKER_USER} RUNTIME_STANDALONE_GROUP=${DOCKER_GRP} RUNTIME_STANDALONE_UID=${DOCKER_USER_ID} RUNTIME_STANDALONE_GID=${DOCKER_GRP_ID} docker/scripts/runtime_start.sh --standalone --local --tag standalone-${TARGET_ARCH}-${IMAGE_VERSION}\n\ + bash docker/scripts/runtime_start.sh --standalone --local --tag standalone-${TARGET_ARCH}-${IMAGE_VERSION}\n\ and switch into it with:\n\ - RUNTIME_STANDALONE_USER=${DOCKER_USER} docker/scripts/runtime_into_standalone.sh" + bash docker/scripts/runtime_into_standalone.sh" diff --git a/docker/scripts/runtime_into_standalone.sh b/docker/scripts/runtime_into_standalone.sh index ecf25bf93f..2ec7c5aa14 100755 --- a/docker/scripts/runtime_into_standalone.sh +++ b/docker/scripts/runtime_into_standalone.sh @@ -15,13 +15,11 @@ # limitations under the License. ############################################################################### -DOCKER_USER="${USER}" RUNTIME_CONTAINER="apollo_runtime_standalone_${USER}" -[ -n "${RUNTIME_STANDALONE_USER}" ] && DOCKER_USER="${RUNTIME_STANDALONE_USER}" xhost +local:root 1>/dev/null 2>&1 -docker exec -u "${DOCKER_USER}" \ +docker exec -u "${USER}" \ -it "${RUNTIME_CONTAINER}" \ /bin/bash diff --git a/docker/scripts/runtime_start.sh b/docker/scripts/runtime_start.sh index 962508541d..a1344db16b 100755 --- a/docker/scripts/runtime_start.sh +++ b/docker/scripts/runtime_start.sh @@ -159,7 +159,6 @@ function check_host_environment() { if [[ -f "${CURR_DIR}/dev_start.sh" ]]; then warning "${CURR_DIR}/dev_start.sh detected." warning "Apollo Runtime Docker is expected to run with release builds." - exit 3 fi } @@ -170,7 +169,11 @@ function setup_devices_and_mount_local_volumes() { setup_device local volumes="" - $RUNTIME_STANDALONE || volumes="-v ${APOLLO_ROOT_DIR}:/apollo" + if $RUNTIME_STANDALONE; then + volumes="-v ${APOLLO_ROOT_DIR}/data:/apollo/data" + else + volumes="-v ${APOLLO_ROOT_DIR}:/apollo" + fi local os_release="$(lsb_release -rs)" case "${os_release}" in @@ -340,12 +343,6 @@ function main() { local docker_group="$(id -g -n)" local docker_gid="$(id -g)" - if $RUNTIME_STANDALONE; then - [ -n "${RUNTIME_STANDALONE_USER}" ] && docker_user="${RUNTIME_STANDALONE_USER}" - [ -n "${RUNTIME_STANDALONE_UID}" ] && docker_uid="${RUNTIME_STANDALONE_UID}" - [ -n "${RUNTIME_STANDALONE_GROUP}" ] && docker_group="${RUNTIME_STANDALONE_GROUP}" - [ -n "${RUNTIME_STANDALONE_GID}" ] && docker_gid="${RUNTIME_STANDALONE_GID}" - fi set -x ${DOCKER_RUN_CMD} -itd \ --privileged \ @@ -362,7 +359,6 @@ function main() { -e NVIDIA_DRIVER_CAPABILITIES=compute,video,graphics,utility \ ${MAP_VOLUMES_CONF} \ ${OTHER_VOLUMES_CONF} \ - ${LOCAL_VOLUMES_CONF} \ ${local_volumes} \ --net host \ -w /apollo \ @@ -383,6 +379,8 @@ function main() { postrun_start_user ${RUNTIME_CONTAINER} + $RUNTIME_STANDALONE && docker exec -u root "${RUNTIME_CONTAINER}" bash -c "chown -R ${docker_uid}:${docker_gid} /apollo" + ok "Congratulations! You have successfully finished setting up Apollo Runtime Environment." ok "To login into the newly created ${RUNTIME_CONTAINER} container, please run the following command:" $RUNTIME_STANDALONE || ok " bash docker/scripts/runtime_into.sh" diff --git a/docs/demo_guide/BUILD b/docs/demo_guide/BUILD new file mode 100644 index 0000000000..c0c13b93d6 --- /dev/null +++ b/docs/demo_guide/BUILD @@ -0,0 +1,19 @@ +load("//tools/install:install.bzl", "install") + +package( + default_visibility = ["//visibility:public"], +) + +install( + name = "install", + data = [ + ":record_helper", + ], +) + +filegroup( + name = "record_helper", + srcs = [ + "record_helper.py", + ], +) diff --git a/modules/map/BUILD b/modules/map/BUILD index acb0a25553..4b66bd0f8c 100644 --- a/modules/map/BUILD +++ b/modules/map/BUILD @@ -1,4 +1,5 @@ load("//tools/install:install.bzl", "install") + package( default_visibility = ["//visibility:public"], ) @@ -6,6 +7,7 @@ package( install( name = "install", deps = [ + "//modules/map/data:install", "//modules/map/tools:install", ], ) diff --git a/modules/map/data/BUILD b/modules/map/data/BUILD index 27334ad5ff..c61cb64188 100644 --- a/modules/map/data/BUILD +++ b/modules/map/data/BUILD @@ -1,5 +1,15 @@ +load("//tools/install:install.bzl", "install") + package(default_visibility = ["//visibility:public"]) +install( + name = "install", + data = [ + ":demo", + ":borregas_ave", + ], +) + filegroup( name = "map_sunnyvale_big_loop", testonly = True, @@ -15,3 +25,17 @@ filegroup( "sunnyvale_loop/**", ]), ) + +filegroup( + name = "demo", + srcs = glob([ + "demo/**", + ]) +) + +filegroup( + name = "borregas_ave", + srcs = glob([ + "borregas_ave/**", + ]) +) diff --git a/modules/tools/BUILD b/modules/tools/BUILD index 14c768dc2b..e319ea39ef 100644 --- a/modules/tools/BUILD +++ b/modules/tools/BUILD @@ -9,5 +9,6 @@ install( deps = [ "//modules/tools/create_map:install", "//modules/tools/map_gen:install", + "//modules/tools/visualizer:install", ], ) diff --git a/modules/tools/visualizer/BUILD b/modules/tools/visualizer/BUILD index d433669a19..1598538a0f 100644 --- a/modules/tools/visualizer/BUILD +++ b/modules/tools/visualizer/BUILD @@ -1,8 +1,19 @@ load("@rules_cc//cc:defs.bzl", "cc_binary") load("//third_party/qt5:qt.bzl", "qt_cc_library") +load("//tools/install:install.bzl", "install") package(default_visibility = ["//visibility:public"]) +install( + name = "install", + targets = [ + ":cyber_visualizer", + ], + deps = [ + "//cyber:install", + ], +) + cc_binary( name = "cyber_visualizer", copts = [ diff --git a/scripts/apollo_release.sh b/scripts/apollo_release.sh index 64520842ef..d3d3aa01b3 100644 --- a/scripts/apollo_release.sh +++ b/scripts/apollo_release.sh @@ -101,6 +101,9 @@ function generate_solibs() { -exec bash -c 'retrieve_so_deps "$0"' {} \ >> ${listing} \; done + find /usr/local/qt5/ -name "*.so" -exec bash -c 'retrieve_so_deps "$0"' {} \ + >> ${listing} \; + cat ${listing} | sort -u } -- GitLab