Tag: shell

在Docker中更改区域设置停止执行许多命令?

如何当我更改我的区域设置在Dockerfile中使用此… : ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 …所以我可以通过这个来实现语言环境的变化… LANG= LANGUAGE= LC_CTYPE="POSIX" LC_NUMERIC="POSIX" LC_TIME="POSIX" LC_COLLATE="POSIX" LC_MONETARY="POSIX" LC_MESSAGES="POSIX" LC_PAPER="POSIX" LC_NAME="POSIX" LC_ADDRESS="POSIX" LC_TELEPHONE="POSIX" LC_MEASUREMENT="POSIX" LC_IDENTIFICATION="POSIX" LC_ALL= ..这个.. LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 然后我遇到了这样的问题 ,没有执行任何命令: root@820760edeb77:/# irb bash: irb: command not found 但是,如果我将这些更改放到语言环境中,并将它们保留在重build后的容器之后,那么一切都按预期工作。 # ENV […]

pipe道失败,自定义泊坞窗图像

在salmantariq/node_mysql hub上有一个自定义的salmantariq/node_mysql : salmantariq/node_mysql 。 它通过nvm安装了MySQL服务器和节点。 我得到以下错误。 我相信我在这里失去了一些东西,但不知道是什么。 { bash: cannot set terminal process group (9): Not a ttybash: no job control in this shell+ umask 000+ git clone –branch="user-login-error-fix" –depth 50 https://x-token-auth:$REPOSITORY_OAUTH_ACCESS_TOKEN@bitbucket.org/diligensoftware/web.git $BUILD_DIR ; git reset –hard ed570209d7a4a1d7b29fe09d9dd7909ed42ed65e ; git remote set-url origin https://x-token-auth:{access_token}@bitbucket.org/diligensoftware/web.gitCloning into '/opt/atlassian/pipelines/agent/build'…HEAD is now at ed57020 configuring test+ chmod 777 […]

sh和bash之间的区别

在编写shell程序时,我们经常使用/bin/sh和/bin/bash 。 我通常使用bash ,但我不知道它们之间有什么区别。 bash和sh之间的主要区别是什么? 在bash和sh编程时我们需要注意什么?

如何使用shell脚本检查docker服务是否已经在UCP上运行

我想检查docker服务是否正在运行。 如果它正在运行,我想删除该服务,并创build一个新的 我正在用shell脚本来完成这个任务 我正在提供我的shell脚本的代码片段,我正在面对Error response from daemon: service data-mapper-service not found if [[ "$(docker service inspect ${DOCKER_SERVICE_NAME} 2> /dev/null)" != "" ]]; then docker service rm ${DOCKER_SERVICE_NAME} else echo "service doesn't exist or may have been removed manually" fi docker service create \ –name ${DOCKER_SERVICE_NAME} \ –network ${OVERLAY_NETWORK} \ –reserve-memory ${10} \ –constraint node.labels.run_images==yes \ […]

在高山docker集装箱运行OpenSSH

我已经安装了OpenSSH ,现在我希望按照文档中所述运行/etc/init.d/sshd start 。 但是它不启动: / # /etc/init.d/sshd start /bin/ash: /etc/init.d/sshd: not found 思考? PS / # ls -la /etc/init.d/sshd -rwxr-xr-x 1 root root 2622 Jan 14 20:48 /etc/init.d/sshd /etc/init.d/sshd的内容: #!/sbin/openrc-run # Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/net-misc/openssh/files/sshd.rc6.4,v 1.5 2015/05/04 02:56:25 vapier […]

Docker – 访问链接的容器

我目前正在学习一些docker工人。 到目前为止,我已经使用php和nginx运行wordpress。 我的Dockerfiles很难编码,如果没有configuration,它们将无法工作。 所以我现在要做的是删除我所有的卷,并使用环境variables来提供我需要的信息来构build我所需的configuration文件,但我正在努力与容器的链接。 我想使用一个* .sh文件作为入口点来设置我需要在我的configuration中的值。 到现在为止,这是一件容易的事情。 我现在的问题是,我需要访问链接的容器文件系统(以取代我使用的卷)。 我有一个app.conf文件(不要怪它,我现在没有关心最佳实践或任何事情): server { listen 0.0.0.0:80; server_name _; root LINKEDADRESS/ROOT_DIR; index index.php index.html index.htm; access_log /var/log/nginx/default_access.log; error_log /var/log/nginx/default_error.log; # Pass PHP scripts to PHP-FPM location ~* \.php$ { fastcgi_index index.php; fastcgi_pass unix:LINKEDADRESS/RUND_DIR/php7-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME LINKEDADRESS/ROOT_DIR$fastcgi_script_name; } } 链接的容器是我的php / wordpress容器。 我的nginx服务器需要访问它的文件系统才能在浏览器中看到wordpress。 将ROOT_DIR设置为envvariables并不是什么大问题,但我不知道如何获取链接容器的地址来访问这些文件。 我知道链接容器导致创build一些envvariables XZW_PORT XZW_TCP_ADRESS 等等,但他们似乎依赖于链接的容器名称。 […]

在Docker容器的源代码中添加行时生成失败

我在https://github.com/audip/rpi-haproxy上工作,并在构builddocker容器时得到这个错误消息: Build failed: The command '/bin/sh -c echo "deb http://httpredir.debian.org/debian jessie-backports main" >> /etc/apt/sources.list' returned a non-zero code: 1 这可以在https://hub.docker.com/r/audip/rpi-haproxy/builds/brxdkayq3g45jjhppndcwnb/ 我试图find答案,但问题似乎是在Dockerfile的第4行的东西。 需要帮助解决这个失败的构build。 # Pull base image. FROM resin/rpi-raspbian:latest # Enable Jessie backports RUN echo "deb http://httpredir.debian.org/debian jessie-backports main" >> /etc/apt/sources.list # Setup GPG keys RUN gpg –keyserver pgpkeys.mit.edu –recv-key 8B48AD6246925553 \ && gpg -a –export […]

Ubunto docker sh mysql脚本运行

我有一个脚本,build立我的docker环境。 我有这条线: docker exec -it guac-mysql /bin/bash mysql -u root -p123456 CREATE DATABASE guacamole; CREATE USER 'guacamole' IDENTIFIED BY 123456; GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole'; FLUSH PRIVILEGES; quit 当我运行时,脚本进入容器上的bash,但其他行不运行,我只需要一个接一个地运行它们。 我怎样才能执行并注入脚本? 谢谢 :)

从php运行一个shell脚本

我有一个问题,很多networking上被问过,但没有任何解决scheme帮助我的情况。 我需要一个非常简单的网站,只需点击一下button,就可以执行一个shell命令来部署Docker容器。 为此我有3个文件都位于/ var / www / html /中: 1- Depl-Script(一个简单的Linux文件,由chmod + x和chmod 777执行,不包含.sh扩展名,包括一个命令: docker run -it -p 8080:8080 surrogate 2-一个DepGUI.php <?php // $output=shell-exec("/var/www/html/Depl-Script"); //didn't work $output=shell_exec("./Depl-Script"); //this doesn't work neither echo $output; //prints 0 $output1=shell_exec("whoami"); //prints www-data echo $output1; ?> 3-一个Main.html,包括: <form action="DepGUI.php"> <input type="submit" value="Open Script"> </form> Shell-exec不能用于运行shell脚本。 我怎么知道这是行不通的? 我检查docker容器,没有创build。 我曾经尝试过的解决scheme 1)当我从root用户运行它时,shell脚本(Dep-Script)工作正常。 2)为了确保,我更改了etc […]

保持对通过FIFO在后台运行的程序的STDIN的访问

所以我有一个docker镜像,包含一个minecraft服务器。 一个Minecraft服务器接受来自STDIN的input,所以在使用java -jar server.jar启动服务器之后,我可以通过在控制台中input命令(例如停止服务器)来提供命令。 理想情况下,我想在一个看起来像这样的shell脚本中启动服务器: #!/bin/sh .. some initialization .. exec java -Xmx$RAM -Xms$RAM -jar server.jar 这样,java可执行文件接pipe进程,以便在docker发送SIGTERM时可以正常终止。 问题出现在我想保留一个人为的STDIN ,允许我通过另一个脚本执行命令到服务器上。 要做到这一点,我做了一个代表控制台的FIFO,就像这样: rm -f console; mkfifo console 我不知道如何将这个FIFOredirect到这个过程中。 我正在阅读使用cat在一个像这样的while循环的fifo while true; do cat console; done 想到做这样的事情: while true; do cat console; done | exec java -jar server.jar 或者像这样的东西: exec java -jar server.jar < <(while true; do cat […]