Dockerfile创建docker镜像编译yocto工程
修改docker中的时区
RUN apt-get update && apt-get install -y \
tzdata \
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
修改字符集
RUN apt-get update && apt-get install -y \
locales \
RUN locale-gen en_US.UTF-8 \
&& DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US.UTF-8
ENV LC_ALL=en_US.UTF-8
RUN locale-gen en_US
修改source源为阿里云的源
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
&& apt-get clean \
&& apt-get update
完整的Dockerfile文件
FROM ubuntu:16.04
MAINTAINER gj_bing
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list \
&& apt-get clean \
&& apt-get update && apt-get install -y \
gawk \
wget \
git-core \
diffstat \
unzip \
texinfo \
gcc-multilib \
build-essential \
chrpath \
socat \
libsdl1.2-dev \
xterm \
cpio \
python \
python3 \
python3-pip \
python3-pexpect \
xz-utils \
debianutils \
iputils-ping \
libssl-dev \
vim \
git \
ncurses-dev \
tmux \
tzdata \
locales \
expect \
&& rm -rf /var/lib/apt/lists*
RUN locale-gen en_US.UTF-8 &&\
DEBIAN_FRONTEND=noninteractive dpkg-reconfigure locales
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US.UTF-8
ENV LC_ALL=en_US.UTF-8
RUN locale-gen en_US
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
CMD "/bin/bash"
根据Dockerfile创建docker镜像
tree .
.
└── Dockerfile
docker build -t yocto-ubuntu:latest --rm=true .
创建容器脚本
if [ $
echo "useage: $0 code_dir"
exit 1
fi
DOCKER_IMG="yocto-ubuntu:latest"
HOST_NAME="docker-server"
CONTAINER_NAME=${USER}"-build-icc"
CODE_PATH=`echo $(cd "$(dirname "$1")"; pwd)/$(basename "$1")`
if [ ! -d $CODE_PATH ]; then
echo "===> code path is invalid"
exit 1
fi
res=`docker ps -a | grep $CONTAINER_NAME`
if [ $? = 0 ]; then
echo "===> creating container...."
docker stop $CONTAINER_NAME > /dev/null
docker rm $CONTAINER_NAME > /dev/null
docker run -it -h $HOST_NAME --name $CONTAINER_NAME -v $CODE_PATH:$CODE_PATH -w $CODE_PATH $DOCKER_IMG sh -c "useradd -u ${UID} ${USER} && su ${USER}"
else
echo "===> creating container...."
docker run -it -h $HOST_NAME --name $CONTAINER_NAME -v $CODE_PATH:$CODE_PATH -w $CODE_PATH $DOCKER_IMG sh -c "useradd -u ${UID} ${USER} && su ${USER}"
fi