diff --git a/.bazelignore b/.bazelignore index c526f7a79c085ba195d6d3d38b0f866f8bdeb4c9..920ca31c4be463044d2718e3cefd3d66f5809ac5 100644 --- a/.bazelignore +++ b/.bazelignore @@ -1,3 +1,2 @@ .cache -docs docker/build diff --git a/BUILD b/BUILD index 75b660c080a9474c12d2c5ec511a3b01674385ea..726099b31d1a6259f19c4cf85f66b44a3d6ca0e2 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 0dcac08a67f30d451cbd8b180cd091281b177967..f6e217349189259884e61a2f27dbad495f9e85b2 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 ecb6aa6cd7a1a439a04c5577dafdcf2551079935..27f74bf83fcf00d6dcab1759a998fd5a40bfed2d 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 b772845419dc5b27b426cdc73e9a670945586f87..7a6e2e293826cf36e16de94785b9aa8ad8d77684 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 6669b88195bae26d978aa7986a636041a91038dd..e1b95a208587230be5c3a35a1ab64ed8723b52d2 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 da96d3c0367c2094f5a379cb2d5387384507ebf2..2116a613b30205c1863cb3741d1fc7d5be8da064 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 cd86e3cc55cf5ac41a32e4cb5b09af197b45c488..103a0c107f18654bbc582c620e2f683bce492ea5 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 ecf25bf93ffc0d6d0b3ae4210d8391a929a86f52..2ec7c5aa14fdb3ec8eb874de3675614f145201ff 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 962508541d76a1d245b3e7c1759053c7e20e70af..a1344db16b6b825de192f7e3f988749963fb900b 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 0000000000000000000000000000000000000000..c0c13b93d663beba086534ac9d470ad31bae5e28 --- /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 acb0a255535d3d5ff90166e0c6280347f549e32d..4b66bd0f8c9717f3435eaa31c57826852607c8d1 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 27334ad5ff6c51e085c8ab9fca31ced43f3973ac..c61cb64188abb2f12ee0f23954486a58912d577a 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 14c768dc2ba9ed30bf96ec933e6a318157ec13dd..e319ea39efee3ecb2537bf8c53d46b38adbf0666 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 d433669a194add8946e5592be5ab0d7c664c53b2..1598538a0fda1bddec490d1a483eaf56da183046 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 64520842ef528659fec4993a4dfe3750efb899b7..d3d3aa01b3adcb602ebb923efd086aaf353e1d3b 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 }