我有一个.NET7应用程序的Dockerfile,我正在为linux/ and 64和linux/arm64构建。一切都很好。
如何优化基于的构建,以便在dotnet restore/publish命令中包含合适的目标平台。但到目前为止,我还不知道如何在Dockerfile中有条件地这样做。
到目前为止,我已经做到了这一点,但是由于第一个RUN命令中的变量没有持久化到下面的命令,所以这当然不起作用。
任何想法都是值得赞赏的!
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build-env
ARG TARGETPLATFORM
ARG BUILDPLATF
cat 没有 -n
user@linux:~$ cat /etc/sysctl.conf | head -4
#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additional system variables.
# See sysctl.conf (5) for information.
user@linux:~$
在-n命令中有cat选项来显示文件的行号。
user@linux:~$ cat -n /etc/sysctl.conf | head
在打印机、交换机等嵌入式设备中,我对固件和操作系统之间的区别感到困惑。嵌入式设备的操作系统是否类似于PC (Linux和Windows)?
例如,我有一台打印机,它有一个嵌入式web服务器,允许我远程管理打印机。当我打开制造商的网站时,我发现操作系统是: OS 9.86。这是什么类型的操作系统?请参阅:
-DQUOTE=yes在下面的代码中是如何工作的?
我希望第二行是ifelse(yes,yes,Learn Linux today!)
其他部分对我来说是有意义的。
来自Linux袖珍指南-丹尼尔·巴雷特著
$ cat myfile
My name is NAME and I am AGE years old.
ifelse(QUOTE,yes,Learn Linux today!)
$ m4 -DNAME=Sandy -DAGE=25 -DQUOTE=yes myfile
My name is Sandy and I am 25 years old.
Learn Linux today
我有一个模板文件(template.txt):
Hello, $x
Hello, $y
我有一个脚本文件(script.sh):
#!/bin/bash
$x=linux
$y=unix
# I want to include template.txt as a here-doc
如何将template.txt包含为here-doc of script.sh。
因此,当我运行script.sh时,输出应该是:
Hello, linux
Hello, unix
编辑:
我认为replace对我的工作来说是个很好的命令:
$ cat template.txt | replace '$x&