dockerfile 中写入多行
echo 多行文字到文本
这篇文章为了记录自己写 Dockerfile 时踩的坑,分三部分描述 echo 内容到文件的用法
- shell 脚本 echo 单行文字到文本
- shell 脚本 echo 多行文字到文本
- Dockerfile 中 echo 多行文字到文本
1. shell 脚本 echo 单行文字到文本
这个是 echo 最常用的用法
1
2
|
#!/bin/bash
echo "test测试" > a.txt
|
2. shell 脚本 echo 多行文字到文本
1
2
3
4
5
6
7
|
#!/bin/bash
cat >a.txt<<EOF # 开始
test测试
多行文本
重定向
到文件
EOF # 结束
|
其中 EOF 表示自定义终止符,所以如果脚本写成下面这样,一样是可以使用的:
1
2
3
4
5
|
#!/bin/bash
cat >a.txt<<ABC # 开始
test测试
多行文本
ABC # 结束
|
只不过我们正常不这么玩,这样显得太另类,也不便于多人协作时,每个人的理解。
3. Dockerfile 中 echo 多行文字到文本
Dockerfile 的使用场景,是在 build 镜像时,需要更换 ubuntu 的镜像源为阿里云,这个时候就需要修改 sources.list。
要用 echo -e 否则不换行。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
FROM ubuntu:18.04
RUN mv /etc/apt/sources.list /etc/apt/sources_bak.list \
&& echo -e 'deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse\n\
\n\
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse\n\
\n\
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse\n\
\n\
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse\n\
\n\
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse\n'\
> /etc/apt/sources.list
|
4. Reference
-
EOF 是什么?
-
[linux<eof
5 替换国内源
centos8
1
2
3
4
5
6
|
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-Base.repo \
/etc/yum.repos.d/CentOS-Extras.repo \
/etc/yum.repos.d/CentOS-AppStream.repo
|
centos7
1
2
3
4
5
6
|
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/centos|g' \
-i.bak \
/etc/yum.repos.d/CentOS-Base.repo \
/etc/yum.repos.d/CentOS-Extras.repo \
/etc/yum.repos.d/CentOS-AppStream.repo
|
建立文件夹 软连
软连的目录下,无法进行 docker-compose down 这是为什么
应该是属于隔离性质的造成的。doris-mysql 是 mysql-flink-doris 的软连
linux 设置时区
1
|
sudo timedatectl set-timezone Asia/Shanghai
|