Tag: sed

如何使用docker run使用sed命令replacenginx docker image的.conf文件上的文本?

我的entrypoint.sh看起来像这样: sed -i 's/HOST_NAME/'"$HOST_NAME"'/g' /usr/local/openresty/nginx/conf/conf.d/CONFIG_FILE.conf exec "$@" CONFIG_FILE.conf是这样的: upstream gunicorn { server $HOST_NAME; } 我的docker运行命令如下所示: docker run -e HOST_NAME=http://cnn.com sid:latest cat /usr/local/openresty/nginx/conf/conf.d/CONFIG_FILE.conf 我想通过docker运行通过cnn.com来取代CONFIG_FILE.conf $HOST_NAME 。 任何帮助将不胜感激,我是新来的,所以如果我犯了愚蠢的错误,请耐心等待。 谢谢。

无法将文件修改为入口点命令的一部分

我的Dockerfile的入口点CMD在执行我的应用程序(Flask)之前执行一个shell脚本来修改一个基于环境variables的本地文件。 shell脚本就像这样: cat static/login.html | sed "s/some_match/some_substitute/g" > static/login.html 但是,我发现生成的文件是零字节。 任何想法可能在做什么? 谢谢。

Docker从stdin保存读取参数

代替docker-compose save命令我已经使用sed来读取YAML文件并将其传送到docker save 。 docker阅读器从stdin中看到了一些奇怪的行为。 例如,我有一个命令,可以find一个docker-compose YAML文件中的所有图像,并将其输出到stdout sed -nr 's/image: "(.*)"/\1/p' docker-compose.yml | uniq | xargs -d '\n' | cat 会输出: mysql redis python 但是,如果我试图pipe这个docker save我得到以下错误 sed -nr 's/image: "(.*)"/\1/p' docker-compose.yml | uniq | xargs -d '\n' | docker save | gzip -c > images.tar.gz "docker save" requires at least 1 argument(s). See 'docker save […]

如何编写Dockerfile来更改Docker镜像中的受保护文本文件?

我有一个Dockerfile,遵循这种模式: RUN echo "[DOCKER BUILD] Installing image dependencies…" && \ apt-get update -y && \ apt-get install -y sudo package_names … RUN useradd -ms /bin/bash builder # tried this too, same error # RUN useradd -m builder && echo "builder:builder" | chpasswd && adduser builder sudo RUN mkdir -p /home/builder && chown -R builder:builder /home/builder […]

无法使用sed在mariadb Dockerfile中自定义缓冲区大小

我试图定制一个mariadb容器,以便增加innodb缓冲区大小。 我的理想场景是使用sed所以我不必维护一个重复的my.cnfconfiguration文件。 这里是我的Dockerfile,但它不会取代像我所期望的值,我不知道我在做什么错… FROM mariadb:10.1 RUN sed -ri 's/innodb_buffer_pool_size\\ =\\ 256M/innodb_buffer_pool_size\\ =\\ 512M/g' /etc/mysql/my.cnf \ && cat /etc/mysql/my.cnf | grep innodb; 这个的输出是: Sending build context to Docker daemon 231.9 MB Step 1 : FROM mariadb:10.1 —> 9a0138c02438 Step 2 : RUN sed -ri 's/innodb_buffer_pool_size\\ =\\ 256M/innodb_buffer_pool_size\\ =\\ 512M/g' /etc/mysql/my.cnf && cat /etc/mysql/my.cnf | grep innodb; […]

在Packer脚本中更改文件(使用sed)会使文件保持不变

目前我正在研究使用封隔器和dockerbuild造一条生产线。 这是我的packer.json: { "builders": [{ "type": "docker", "image": "php:7.0-apache", "commit": true }], "provisioners": [ { "type": "file", "source": "./", "destination": "/var/www/html/" }, { "type": "shell", "inline": [ "chown -R www-data:www-data /var/www/html", "sed '/<Directory \\/var\\/www\\/>/,/<\\/Directory>/ s/AllowOverride None/AllowOverride all/' /etc/apache2/apache2.conf", "sed '/<VirtualHost/,/<\\/VirtualHost>/ s/DocumentRoot \\/var\\/www\\/html/DocumentRoot \\/var\\/www\\/html\\/web/' /etc/apache2/sites-enabled/000-default.conf" ] } ] } provisioners部分中的Shell脚本包含用于更改apacheconfiguration中的AllowOverride和DocumentRootvariables的一些sed命令。 当封隔器运行这个脚本它工作得很好,我得到一个积极的sed输出,所以sed似乎工作正常。 但是在docker图像中文件没有改变。 复制文件供应商中的file工作正常。 我究竟做错了什么?

如何在官方的postgreSQL 10.0 docker镜像中增加max_connection

问题 我有太多的连接打开使用默认的dockerpostgresqlconfiguration https://hub.docker.com/_/postgres/ 目标 我想扩展max_connection而不使用卷来安assembly置(我需要这个在我的CI环境默认情况下是可用的)。 我试图使用sed来编辑configuration,但这没有任何作用。 什么是推荐的方式来覆盖postgresql docker官方图像的默认configuration?

在docker中使用sedreplacepath

我知道这可能是一个愚蠢的问题…我想从docker文件做一个docker工人。 问题是,当我使用docker run -it docker_name / bin / bash进入docker时,我没有命令行完成。 所以我做了这个https://docs.docker.com/machine/completion/ (仍然不工作),并希望这样做https://linuxconfig.org/tab-does-not-automatically-complete-docker-commands-解 事情是,我无法从泊坞窗文件中取代几行。 我想要像这样使用命令sed: RUN sed -i 's+#if ! shopt -oq posix; then+if ! shopt -oq posix; then+g' /etc/bash.bashrc RUN sed -i 's+#if ! shopt -oq posix; then+if ! shopt -oq posix; then+g' /etc/bash.bashrc RUN sed -i 's+#if ! shopt -oq posix; then+if ! shopt -oq […]

Sed在构buildDocker镜像时找不到文件

我正在尝试构build我的第一个Docker镜像。 我的形象是基于centos:7 。 但是,Docker映像卡住了这个命令: RUN /usr/bin/sed -e 's/127.0.0.1:9000/9000/' \ -e '/allowed_clients/d' \ -e '/catch_workers_output/s/^;//' \ -e '/error_log/d' \ -i /etc/php-fpm.d/www.conf 这是我在build立图像时所得到的: Step 5 : RUN /usr/bin/sed -e 's/127.0.0.1:9000/9000/' ??????? -e '/allowed_clien ts/d' ??????? -e '/catch_workers_output/s/^;//' ??????? -e '/error_log/d' ?????? ? -i /etc/php-fpm.d/www.conf —> Running in 660063647d37 /usr/bin/sed: can't read ???????: No such file or directory […]

执行sed命令到docker集装箱

我正在尝试更改Docker容器内的configuration文件。 docker exec container_name sed -ire '/URL_BASE = /c\api.myapiurl' tmp/config.ini 在本地执行此sed命令工作得很好,但是当我尝试在容器中执行此操作时,我收到以下错误消息。 sed: cannot rename tmp/config.ini: Operation not permitted 我需要做的是在将容器部署到我的服务器之前,从'config.ini'中replace'URL_BASE =' 。 我不知道为什么sed命令试图重命名文件,当它不假设。 有任何想法吗? 我试过了 我试图用–privileged标志执行,但没有奏效。 我试图用chmod来改变文件的权限,但是我不能以同样的权限为由。 docker exec –privileged container_name sed -ire '/URL_BASE = /c\api.myapiurl' tmp/config.ini Result: sed: cannot rename tmp/config.ini: Operation not permitted CHMOD docker exec –privileged container_name chmod 755 tmp/config.ini Result: chmod: changing […]