go - docker run 上的 Docker Golang onbuild 自定义操作

标签 go docker dockerfile

我有一个相当简单的 Go 应用程序 Dockerfile:

FROM golang:onbuild
EXPOSE 5000 5001

现在当我运行它时(不是在构建图像时!)我想更改静态提供的 html 文件中的值,可能使用 sed 来使用先前指定的环境变量-e 到 docker 运行。我该怎么做?

最佳答案

你可以尝试这样的事情:

FROM golang:onbuild
COPY ./docker-entrypoint.sh /

EXPOSE 5000 5001
ENTRYPOINT ["/docker-entrypoint.sh"]

注意:您需要将带有 sed 脚本的入口点文件复制到容器中(在第 2 行完成)

docker-entrypoint.sh 与您的 sed 脚本

# execute sed only **if variable exists**
sed -ri "s/<title>.*/<title>$ENVIRONMENT_VARIABLE</title>/" /path_to_html_file/index.html

- 在 index.html 文件中用新标题替换行的简单示例(作为环境变量在运行中传递)

注意:请记住,只有当环境变量被用作 @STLMikey 显示时才运行 sed。

并使用 $ENVIRONMENT_VARIABLE 运行 docker 容器

例如:

docker run -d -t -i -e ENVIRONMENT_VARIABLE='New website title' --name=container_name IMAGE_NAME 

关于go - docker run 上的 Docker Golang onbuild 自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39753803/

相关文章:

http - 如何找到 Go http.Response 的远程 IP 地址?

unit-testing - 如何在自定义文件夹中使用 go test 生成多个包的覆盖率?

elasticsearch - Docker-ELK堆栈— “Elasticsearch appears to be uneachable or down”

ruby-on-rails - Docker和Rails环境

docker - 入口点 : "entrypoint.sh" - docker compose

go - Go中如何将xxxxxxxe+09格式的float转为int?

scala - 在 AWS EMR SDK 中使用 AddJobFlowStep 的正确方法是什么?

c# - 通过URL访问Docker卷

ruby-on-rails - 使用 postgres 和 redis 对 Rails 项目进行 Dockerize

nginx - 使用 docker compose 将已安装的工具从一个容器共享到所有容器