Selaa lähdekoodia

feat: update Dockerfile to support sudo

lujw2 9 kuukautta sitten
vanhempi
commit
56754dc995
3 muutettua tiedostoa jossa 20 lisäystä ja 29 poistoa
  1. 16 18
      Dockerfile
  2. 2 9
      docker-compose.yml
  3. 2 2
      toolchain.cmake

+ 16 - 18
Dockerfile

@@ -1,28 +1,26 @@
 FROM docker.m.daocloud.io/ubuntu:20.04
 
-ARG USERNAME=jasper
-ARG USER_UID=1000
-ARG USER_GID=$USER_UID
+SHELL ["/bin/bash", "-c"]
 
-# Create the user
-RUN groupadd --gid $USER_GID $USERNAME \
-    && useradd --uid $USER_UID --gid $USER_GID -m $USERNAME \
-    #
-    # [Optional] Add sudo support. Omit if you don't need to install software after connecting.
-    && sed -i 's/http:\/\/ports.ubuntu.com\//http:\/\/mirrors.aliyun.com\//g' /etc/apt/sources.list \
-    && apt-get update \
-    && apt-get install -y sudo \
-    && echo $USERNAME ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/$USERNAME \
-    && chmod 0440 /etc/sudoers.d/$USERNAME \
-    && apt-get update && apt-get upgrade -y \
-    && apt-get install -y python3-pip
-ENV SHELL /bin/bash
+# Setup user account
+ARG uid=1000
+ARG gid=1000
+ARG user=jasper
+RUN groupadd -r -f -g ${gid} ${user} && useradd -o -r -l -u ${uid} -g ${gid} -ms /bin/bash ${user}
+RUN usermod -aG sudo ${user}
+RUN echo "${user}:888888" | chpasswd
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN sed -i 's/http:\/\/ports.ubuntu.com\//http:\/\/mirrors.aliyun.com\//g' /etc/apt/sources.list \
+    && apt-get update && apt-get install -y --no-install-recommends sudo \
+    libc-bin \
+    binutils
 
 # ********************************************************
 # * Anything else you want to do like clean up goes here *
 # ********************************************************
-RUN echo 'cd ~/Work/' >> /home/jasper/.bashrc
 
 # [Optional] Set the default user. Omit if you want to keep the default as root.
-USER $USERNAME
+USER $user
 CMD ["/bin/bash"]

+ 2 - 9
docker-compose.yml

@@ -1,7 +1,7 @@
 version: '3'
 services:
   arm_dev:
-    image: ubuntu:20.04
+    image: arm_dev:v1.1
     platform: linux/arm64
     container_name: arm-sysroot
     privileged: true
@@ -12,23 +12,16 @@ services:
     volumes:
       - /dev:/dev
       - /opt/arm/sysroot/bin:/bin
-      - /opt/arm/sysroot/boot:/boot
-      - /opt/arm/sysroot/dev:/dev
-      - /opt/arm/sysroot/etc:/etc
-      - /opt/arm/sysroot/home:/home
       - /opt/arm/sysroot/lib:/lib
-      - /opt/arm/sysroot/media:/media
-      - /opt/arm/sysroot/mnt:/mnt
       - /opt/arm/sysroot/opt:/opt
       # - /opt/arm/sysroot/proc:/proc
       - /opt/arm/sysroot/root:/root
-      - /opt/arm/sysroot/run:/run
-      - /opt/arm/sysroot/sbin:/sbin
       - /opt/arm/sysroot/srv:/srv
       - /opt/arm/sysroot/sys:/sys
       - /opt/arm/sysroot/tmp:/tmp
       - /opt/arm/sysroot/usr:/usr
       - /opt/arm/sysroot/var:/var
+      - /home/jasper/Work:/home/jasper/Work
 
 
 

+ 2 - 2
toolchain.cmake

@@ -15,12 +15,12 @@ SET(CMAKE_SYSTEM_PROCESSOR aarch64)
 set(CMAKE_FIND_ROOT_PATH ${ARM_SYSROOT_PATH})
 set(CMAKE_INCLUDE_PATH  /usr/include/aarch64-linux-gnu)
 set(CMAKE_LIBRARY_PATH  /usr/lib/aarch64-linux-gnu)
-set(CMAKE_PROGRAM_PATH  /usr/bin/aarch64-linux-gnu)
+# set(CMAKE_PROGRAM_PATH  /usr/bin/aarch64-linux-gnu)
 
 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--rpath-link,${ARM_SYSROOT_PATH}/usr/lib/aarch64-linux-gnu")
 
 # ONLY means use CMAKE_FIND_ROOT_PATH, NEVER means use CMAKE_SYSROOT
-set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM BOTH)
 set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
 set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
 set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)