duanmao1319 2016-09-28 17:13
浏览 116
已采纳

Docker运行时的Docker Golang onbuild自定义操作

I have a fairly easy Dockerfile for a Go app:

FROM golang:onbuild
EXPOSE 5000 5001

Now when I run it (not when building the image!) I would like to change a value in a html file which gets statically served, possibly using sed to use an environment variable previously specified with -e to docker run. How can I do that?

  • 写回答

2条回答 默认 最新

  • drvfqr5609 2016-09-28 18:47
    关注

    You can try something like this:

    FROM golang:onbuild
    COPY ./docker-entrypoint.sh /
    
    EXPOSE 5000 5001
    ENTRYPOINT ["/docker-entrypoint.sh"]
    

    Note: you need to copy entry point file with your sed script somewhere into container (done on line 2)

    and docker-entrypoint.sh with your sed script

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

    - simple example of replacement line with new title (passed in run as env. variable) in index.html file

    Note: just keep in mind to run sed only if environment variable was served as @STLMikey shows.

    and run docker container with $ENVIRONMENT_VARIABLE

    eg:

    docker run -d -t -i -e ENVIRONMENT_VARIABLE='New website title' --name=container_name IMAGE_NAME 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?