Tag: bash

命令在bash上工作,但不在cron上

我使用rails运行docker镜像(使用cron已经安装)。 一切运行良好,除了我想添加一个cron作为一个命令作为,但给我一个错误,当添加到crontab。 以下命令是: 0,2 * * * * /bin/bash -l -c 'cd /app && bin/rails runner -e production '\''Statistic.create_statistic'\'' >> log/cron_log.log 2>> log/cron_error_log.log' 我每两分钟就运行一次,为了清楚起见,我在这段代码中省略了它。 当我只运行: /bin/bash -l -c 'cd /app && bin/rails runner -e production '\''Statistic.create_statistic'\'' >> log/cron_log.log 2>> log/cron_error_log.log' 有用 我得到的错误是: /usr/local/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file — bundler/setup (LoadError) from /usr/local/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require' from […]

脚本后不能返回到shell会话

我不能得到一个脚本返回到bash。 该脚本通过以下Docker指令启动: ENTRYPOINT ["/bin/bash", "-c"] CMD ["set -e && /config/startup/init.sh"] 初始化脚本如下所示: #!/bin/bash if [ -d /etc/postfix/init.d ]; then for f in /etc/postfix/init.d/*.sh; do [ -f "$f" ] && . "$f" done fi echo "[x] Starting supervisord …" /usr/bin/supervisord -c /etc/supervisord.conf bash 这是我用来启动映像到一个容器的命令: docker run -it –env-file ENV_LOCAL mailrelay 初始化脚本按预期运行(我可以看到/etc/postfix/init.d/目录下的脚本输出,并且supervisord启动了Postfix。 问题是让脚本返回到父进程(bash)而不是需要启动一个新的。 在点击supervisord ,会话就在那里,需要一个Ctrl + C来让它回到bash提示符。 如果我在init.sh脚本结束时不init.sh […]

检查文件校验和在高山

我得到了这个Alpine好奇的问题。 我想检查bash控制台中的文件的校验和。 它在CentOS下工作,但不在Alpine下工作。 错误在哪里? 在CentOS下 $ sha1sum /bin/tini fa23d1e20732501c3bb8eeeca423c89ac80ed452 /bin/tini $ echo "fa23d1e20732501c3bb8eeeca423c89ac80ed452 /bin/tini" | sha1sum -c – /bin/tini: OK 在高山下 $ sha1sum /bin/tini fa23d1e20732501c3bb8eeeca423c89ac80ed452 /bin/tini $ echo "fa23d1e20732501c3bb8eeeca423c89ac80ed452 /bin/tini" | sha1sum -c – sha1sum: WARNING: 1 of 1 computed checksums did NOT match

了解docker入口脚本

脚本位于这里: https : //github.com/docker-library/ghost/blob/master/docker-entrypoint.sh #!/bin/bash set -e if [[ "$*" == npm*start* ]]; then baseDir="$GHOST_SOURCE/content" for dir in "$baseDir"/*/ "$baseDir"/themes/*/; do targetDir="$GHOST_CONTENT/${dir#$baseDir/}" mkdir -p "$targetDir" if [ -z "$(ls -A "$targetDir")" ]; then tar -c –one-file-system -C "$dir" . | tar xC "$targetDir" fi done if [ ! -e "$GHOST_CONTENT/config.js" ]; then sed -r ' […]

设置像Vim这样的文本编辑器,Spacemacs可以在Docker容器上工作而不需要在主机上安装工具

我正在试图build立一个模块化的开发环境与docker集装箱,其中: 1)我的主机没有安装sdks / dev工具/编译器(这些应该只存在于特定的容器中) 2)在OSX的GUI版本中使用我的文本编辑器(Vim,Spacemacs) 这里的主要问题是大多数时候文本编辑器的特定语言插件(如Spacemacs中的elm层 )需要这些工具才能正常工作。 任何帮助?

如何防止Docker容器在退出/ bin / bash会话后停止

如何防止Docker容器退出作为ENTRYPOINT提供的/bin/bash会话后停止? 我的意思是。 假设我有一个用Clojure编写的Web服务,我想把它包装在一个容器中。 这就是Dockerfile外观: FROM pandeiro/lein MAINTAINER some <some@email.com> RUN apt-get update && apt-get install -y git RUN git clone https://github.com/some/some.git && cd web-service && lein deps ENTRYPOINT ["/bin/bash"] 我把/bin/bash作为入口点的原因是用户应该首先对web服务的configuration文件进行一些修改。 当我们执行docker run -p 443:443 -t -i container-name ,会打开一个/bin/bash会话,我们可以在其中安装一个文本编辑器,对configuration文件进行一些更改并通过lein run web服务。 但问题是,当我们closuresbash会话时,整个Docker容器将停止,因此Web服务将不再可用。 在这种情况下我能做些什么? 你在我提供的例子中看到了哪些其他缺陷?

不能在docker maven容器中写入〜/ .m2

为什么在构build过程中maven3 docker镜像中的/root/.m2文件不会写入持久化? 一个简单的dockerfile: FROM maven:3-jdk-8 RUN touch /root/.m2/testfilehere && ls -a /root/.m2 RUN ls -a /root/.m2 CMD ["bash"] 生成以下输出。 $ docker build -t test –no-cache . Sending build context to Docker daemon 2.048 kB Step 1 : FROM maven:3-jdk-8 —> 42e3884987fb Step 2 : RUN touch /root/.m2/testfilehere && ls -a /root/.m2 —> Running in 1c1dc5e9f082 […]

过滤docker – 撰写输出

我有几个容器,当我进行docker工作时,可以输出数百行输出,并且可以加载所有的服务。 有没有一种方法可以轻松地过滤输出或者更好,没有那些服务输出到标准输出,在做docker-up时呢?

Docker上的DataStax Enterprise:无法启动,因为/ hadoop / conf目录不可写

我已经遵循了DataStax关于在Docker中使用DSE的最佳实践的指南 ,但是我使用了DataStax提供的所有默认安装脚本和Dockerfiles来运行以下错误。 错误日志 Caused by: java.lang.RuntimeException: Failed to save custom DSE Hadoop config at com.datastax.bdp.hadoop.mapred.CassandraJobConf.writeDseHadoopConfig(CassandraJobConf.java:310) ~[dse-hadoop-5.0.3.jar:5.0.3] at com.datastax.bdp.hadoop.mapred.CassandraJobConf.writeDseHadoopConfig(CassandraJobConf.java:174) ~[dse-hadoop-5.0.3.jar:5.0.3] at com.datastax.bdp.ConfigurationWriterPlugin.onActivate(ConfigurationWriterPlugin.java:20) ~[dse-hadoop-5.0.3.jar:5.0.3] at com.datastax.bdp.plugin.PluginManager.initialize(PluginManager.java:377) ~[dse-core-5.0.3.jar:5.0.3] at com.datastax.bdp.plugin.PluginManager.activateDirect(PluginManager.java:306) ~[dse-core-5.0.3.jar:5.0.3] … 7 common frames omitted Caused by: java.io.IOException: Directory not writable: /opt/dse/resources/hadoop/conf at com.datastax.bdp.hadoop.mapred.CassandraJobConf.saveConfiguration(CassandraJobConf.java:466) ~[dse-hadoop-5.0.3.jar:5.0.3] at com.datastax.bdp.hadoop.mapred.CassandraJobConf.saveDseHadoopConfiguration(CassandraJobConf.java:345) ~[dse-hadoop-5.0.3.jar:5.0.3] at com.datastax.bdp.hadoop.mapred.CassandraJobConf.writeDseHadoopConfig(CassandraJobConf.java:300) ~[dse-hadoop-5.0.3.jar:5.0.3] … 11 common frames omitted Unable […]

找不到环境参数

我有以下一行脚本: sudo env WORDPRESS_MYSQL_ROOT_PASSWORD="passwd" \ WORDPRESS_MYSQL_USER="wordpress" \ WORDPRESS_MYSQL_PASSWORD="wordpress" \ WORDPRESS_ADMIN_USER="admin" \ WORDPRESS_ADMIN_PASSWORD="admin" \ WORDPRESS_URL="http://0.0.0.0:8080" \ docker run \ –volume "/home/pcmagas/Kwdikas/docker/piwik-with-wordpress/scripts/../data/wordpress/db":/var/lib/mysql \ –volume /home/pcmagas/Kwdikas/docker/piwik-with-wordpress/scripts/../restore/wordpress/db:/docker-entrypoint-initdb.d \ -e MYSQL_ROOT_PASSWORD=$WORDPRESS_MYSQL_ROOT_PASSWORD \ -e MYSQL_DATABASE="wordpress" \ -e MYSQL_USER=$WORDPRESS_MYSQL_USER \ -e MYSQL_PASSWORD=$WORDPRESS_MYSQL_PASSWORD \ mariadb 但由于某种原因,我得到的错误: 错误:未初始化数据库并且未指定密码选项您需要指定MYSQL_ROOT_PASSWORD,MYSQL_ALLOW_EMPTY_PASSWORD和MYSQL_RANDOM_ROOT_PASSWORD之一 这意味着出于某种原因找不到$WORDPRESS_MYSQL_ROOT_PASSWORD环境参数。 你能帮我吗?