Tag: bash

perl -p -i -e在shell脚本中

#!/usr/bin/env bash DOCUMENT_ROOT=/var/www/html/ rm index.php cd modules/mymodules/ perl -p -i -e 's/x.xx.xx.y/dd.dd.ddd.dd/g' `grep -ril y.yy.yy.y *` 显示显示警告 -i used with no filenames on the command line, reading from STDIN. 它阻止运行其余的脚本。 任何解决scheme 其实我需要跑步 perl -p -i -e 's/x.xx.xx.y/dd.dd.ddd.dd/g' `grep -ril y.yy.yy.y *` Inside a shell script 我用docker使用Ubuntu。

让$ docker为docker-compose组成一个命令

有没有一种方法让docker compose在一个bash别名中运行docker-compose ? 我知道docker是它自己的一个命令,所以我不认为你可以,我想我会问,因为当我inputdocker这么docker ,它驱使我疯狂制造别名。 我已经有alias dco=docker-compose但是你知道,一个兄弟正在寻找更好的方法。 🙂

在这里使用Dockerfile中的ENTRYPOINT / CMD文件

我想做的事 我的目标是最终得到一个Docker镜像,只要一个容器从它启动,就从标准input读取input,直到遇到EOF。 然后,它只是写回已经读取到标准输出。 基本上,我的想法是这应该是可能的通过使用这里的文档语法cat << EOF 。 我到目前为止做了什么 到目前为止,我使用CMD Dockerfile指令尝试了不同的变体,但直到现在才成功。 从我创build的所有图像中,我启动了docker run -it myimage的容器,以保持容器的stdin连接。 变体1 FROM alpine 3.7 CMD ["cat", "<<", "EOF"] 这导致以下错误: cat: can't open '<<': No such file or directory cat: can't open 'EOF': No such file or directory 变体2 FROM alpine 3.7 CMD ["cat << EOF"] 结果: container_linux.go:265: starting container process caused […]

无法find我的脚本中的错误不符合预期的行为

docker run –rm \ /bin/bash -c "\ su – hello && \ echo \"Pre\" && \ python ${M} ${F} ${D} ${B} && \ echo \"Post\" && \ CHECK_VALUE=`$(cat B)` && \ echo ${CHECK_VALUE} && \ " 我的问题是$ {B}是由python代码生成的文件。 但是每当我运行这个我得到以下日志: cat: /home/hello/D/W/H/b.txt: No such file or directory Pre Post 而且在空行这显然意味着我的Python代码是未完成的,下一行是运行。 请帮助我如何才能将文件读入variables后才写入? 为什么这种模棱两可的行为呢?

在Docker容器中执行for循环

我使用docker容器来执行curl docker run –rm –network=mynetwork tutum/curl for i in `seq 1 10`; do curl -s http://Url; done 但输出是-bash: syntax error near unexpected token do'` -bash: syntax error near unexpected token 。 我如何以适当的方式执行此操作。 我想看看输出,而不进入容器或检查他们的日志。 例如这个工程: docker run –rm -d -it –network=mynetwork tutum/curl /bin/sh docker exec -it 4e8cb1e8c9fb bash root@4e8cb1e8c9fb:/# for i in `seq 1 20`; do […]

在具有root访问权限的kubernetes窗格上执行命令

我有一个名为“jenkins-app-2843651954-4zqdp”的豆荚。 我想暂时在这个吊舱上安装一些软件。 我怎样才能做到这一点? 我正在尝试这个kubectl exec -it jenkins-app-2843651954-4zqdp — /bin/bash ,然后运行apt-get install命令,但是因为我正在访问的用户没有sudo访问权限,所以我无法运行命令

“usermod:UID'0'already exists”why?

作为我的Docker镜像的一部分,我有以下的ENTRYPOINT脚本: #!/bin/bash set -e if [ -z "${UID}" ]; then uid=1000; else uid=${UID}; fi if [ -z "${GID}" ]; then gid=1000; else gid=${GID}; fi echo "UID: $uid" echo "GID: $gid" data_dir="/var/www/html" usermod -u "$uid" www-data && groupmod -g "$gid" www-data chown -R www-data:root "$data_dir" if [ -d "$data_dir" ]; then chgrp -RH www-data "$data_dir" chmod […]

有条件的在Bash中的Docker参数

在我的bash文件中,我有这样的东西 docker run -d \ –network=host \ –name my-service \ –log-driver="$LOGGING" \ if [[ "$LOGGING" == 'splunk' ]]; then echo "–log-opt tag={{.ImageName}}/{{.Name}}/{{.ID}} \\"; echo "–log-opt env=NODE_ENV \\"; fi 但是shellcheck通过显示以下结果来抱怨。 任何想法? https://github.com/koalaman/shellcheck/wiki/SC1089

“$ PWD”的含义:/ path / to / directory“

在docker中,我使用以下参数运行docker run : -v "$PWD":/usr/src/app 。 我知道-v指定装入卷的位置, pwd返回当前path。 但是,什么意思是"$PWD:" ?

Postgres – 在bash中testing数据库连接

我想知道是否有一个替代psql命令来testing使用bash连接到postgresql数据库。 我正在设置一个核心操作系统群集,并有一个服务,它应该每分钟执行相当于psql 'host=xxx port=xxx dbname=xxx user=xxx'的服务,以确定服务是否正在运行,更重要的是,如果可以使用给定的参数连接到它)。 我无法直接在Core OS上安装postgres。 Core OS中通常使用的命令类似curl -f ${COREOS_PUBLIC_IPV4}:%i; 。 但它只会告诉服务本身是否在给定的端口上运行,没有任何访问检查。 先谢谢你!