Docker 如何用sed替换文件内容
我正试图在docker上构建一个nodejs应用程序。 我有以下文件Docker 如何用sed替换文件内容,docker,sed,dockerfile,Docker,Sed,Dockerfile,我正试图在docker上构建一个nodejs应用程序。 我有以下文件 --Dockerfile FROM mhart/alpine-node:12 RUN echo -e "http://nl.alpinelinux.org/alpine/v3.5/main\nhttp://nl.alpinelinux.org/alpine/v3.5/community" > /etc/apk/repositories RUN apk add --no-cache make gcc
--Dockerfile
FROM mhart/alpine-node:12
RUN echo -e "http://nl.alpinelinux.org/alpine/v3.5/main\nhttp://nl.alpinelinux.org/alpine/v3.5/community" > /etc/apk/repositories
RUN apk add --no-cache make gcc g++ python git
USER root
RUN apk --update add bash
RUN apk add dos2unix --update-cache --repository http://dl-3.alpinelinux.org/alpine/edge/community/ --allow-untrusted
COPY . /app
WORKDIR /app
RUN rm -rf ./docker-entrypoint.sh
COPY docker-entrypoint.sh /
RUN dos2unix /docker-entrypoint.sh
RUN chmod 777 -R /docker-entrypoint.sh
RUN npm install -g npm@6.14.5
RUN npm -v
RUN node -v
RUN npm install
RUN rm -rf ./config/test.json
COPY config/test.json ./config/test.json
RUN rm -rf /var/cache/apk/*
EXPOSE 3001
ENTRYPOINT [ "/docker-entrypoint.sh"]
# CMD npm start
ENTRYPOINT npm start
这是我在Docker中的config/test.json输出文件
"mongo" : "${MONGO}",
test.json的内容尚未更改
谁能告诉我哪里出了问题?
请告诉我如何修理它。谢谢大家! 在这种特殊情况下,是您在
:
之前的间距
请尝试sed-e“s/\“mongo\”:\“\${mongo}\”/“mongo\”:\“$mongoDB\”/g”-i$config
这里可能不适用,但您也可以使用regex:sed-e“s/\“mongo\”[]*:[]*\“\${mongo}\”/\“mongo\”:\“$mongoDB\”/g”-i$config
入口点[“/docker ENTRYPOINT.sh”]入口点npm启动 定义多个入口点时,请参见: 只有Dockerfile中的最后一条入口点指令才会生效
这意味着只有
npm start
make effect,您的docker entrypoint.sh
甚至没有运行…请提取a并提供它。这里有很多实际上是不必要的。顺便说一句,不要将每个命令放在单独的运行指令中。Dockerfile中的每条指令都会生成一个新层,特别是,这意味着您的apk缓存实际上不会从映像中删除。此外,它还为图像增加了不必要的复杂性,并为图像添加了额外的元数据。在可能的情况下,更好的连锁指挥。这就是为什么我不能更改文件内容的原因。非常感谢。
"mongo" : "${MONGO}",