- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试准备好容器化的node.js-postgres服务。
由于我的应用程序(节点)容器在postgres容器完全设置并准备好接收连接之前已经启动,因此我使用了wait-for-it.sh bash脚本。
我的应用程序的Dockerfile
FROM node:latest
WORKDIR /container
COPY wait-for-it.sh /usr/wait-for-it.sh
RUN chmod +x /usr/wait-for-it.sh
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 5800
CMD ["npm", "start"]
docker-compose.yml:
version: '3.7'
services:
postgres:
container_name: postgres
image: mdillon/postgis
environment:
POSTGRES_PASSWORD: rndpassword
POSTGRES_USER: postgres
POSTGRES_DB: geogis
PGDATA: /pgdata
volumes:
- ./pgdata:/var/lib/postgresql/data
ports:
- '5432:5432'
web:
container_name: app
restart: always
build: .
ports:
- '5800:5800'
depends_on:
- postgres
command: bash -c "/usr/wait-for-it.sh --timeout=0 postgres:5432"
撰写文件似乎要等待postgres容器被完全设置,但是我收到了“未完成启动”日志。该应用程序退出,我无法向该应用程序发送请求。
$ docker-compose up
Creating network "testsrv_default" with the default driver
Creating postgres ... done
Creating app ... done
Attaching to postgres, app
postgres | The files belonging to this database system will be owned by user "postgres".
postgres | This user must also own the server process.
postgres |
postgres | The database cluster will be initialized with locale "en_US.utf8".
postgres | The default database encoding has accordingly been set to "UTF8".
postgres | The default text search configuration will be set to "english".
postgres |
postgres | Data page checksums are disabled.
postgres |
postgres | fixing permissions on existing directory /pgdata ... ok
postgres | creating subdirectories ... ok
postgres | selecting default max_connections ... 100
postgres | selecting default shared_buffers ... 128MB
postgres | selecting dynamic shared memory implementation ... posix
postgres | creating configuration files ... ok
app | wait-for-it.sh: waiting 15 seconds for postgres:5432
postgres | running bootstrap script ... ok
postgres | performing post-bootstrap initialization ... ok
postgres | syncing data to disk ... ok
postgres |
postgres | Success. You can now start the database server using:
postgres |
postgres | pg_ctl -D /pgdata -l logfile start
postgres |
postgres |
postgres | WARNING: enabling "trust" authentication for local connections
postgres | You can change this by editing pg_hba.conf or using the option -A, or
postgres | --auth-local and --auth-host, the next time you run initdb.
postgres | waiting for server to start....2020-06-27 14:11:00.734 UTC [41] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres | 2020-06-27 14:11:00.752 UTC [42] LOG: database system was shut down at 2020-06-27 14:10:59 UTC
postgres | 2020-06-27 14:11:00.758 UTC [41] LOG: database system is ready to accept connections
postgres | done
postgres | server started
postgres | CREATE DATABASE
postgres |
postgres |
postgres | /usr/local/bin/docker-entrypoint.sh: sourcing /docker-entrypoint-initdb.d/postgis.sh
postgres | CREATE DATABASE
postgres | UPDATE 1
postgres | Loading PostGIS extensions into template_postgis
postgres | CREATE EXTENSION
postgres | CREATE EXTENSION
postgres | CREATE EXTENSION
postgres | CREATE EXTENSION
postgres | Loading PostGIS extensions into geogis
postgres | CREATE EXTENSION
postgres | CREATE EXTENSION
postgres | CREATE EXTENSION
postgres | CREATE EXTENSION
postgres |
postgres | waiting for server to shut down...2020-06-27 14:11:04.527 UTC [41] LOG: received fast shutdown request
postgres | .2020-06-27 14:11:04.535 UTC [41] LOG: aborting any active transactions
postgres | 2020-06-27 14:11:04.537 UTC [41] LOG: background worker "logical replication launcher" (PID 48) exited with exit code 1
postgres | 2020-06-27 14:11:04.548 UTC [43] LOG: shutting down
postgres | 2020-06-27 14:11:05.083 UTC [41] LOG: database system is shut down
postgres | done
postgres | server stopped
postgres |
postgres | PostgreSQL init process complete; ready for start up.
postgres |
postgres | 2020-06-27 14:11:05.139 UTC [1] LOG: listening on IPv4 address "0.0.0.0", port 5432
postgres | 2020-06-27 14:11:05.139 UTC [1] LOG: listening on IPv6 address "::", port 5432
postgres | 2020-06-27 14:11:05.144 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres | 2020-06-27 14:11:05.158 UTC [87] LOG: database system was shut down at 2020-06-27 14:11:05 UTC
postgres | 2020-06-27 14:11:05.163 UTC [1] LOG: database system is ready to accept connections
postgres | 2020-06-27 14:11:05.727 UTC [94] LOG: incomplete startup packet
app | wait-for-it.sh: postgres:5432 is available after 7 seconds
postgres | 2020-06-27 14:11:06.125 UTC [95] LOG: incomplete startup packet
app | wait-for-it.sh: postgres:5432 is available after 0 seconds
app exited with code 0
postgres | 2020-06-27 14:11:06.643 UTC [96] LOG: incomplete startup packet
app | wait-for-it.sh: postgres:5432 is available after 0 seconds
app exited with code 0
postgres | 2020-06-27 14:11:07.358 UTC [97] LOG: incomplete startup packet
app | wait-for-it.sh: postgres:5432 is available after 0 seconds
app exited with code 0
postgres | 2020-06-27 14:11:08.485 UTC [98] LOG: incomplete startup packet
app exited with code 0
postgres | 2020-06-27 14:11:10.382 UTC [99] LOG: incomplete startup packet
app exited with code 0
postgres | 2020-06-27 14:11:13.895 UTC [100] LOG: incomplete startup packet
app exited with code 0
这种行为一直持续到我关闭容器为止。
最佳答案
您应该通过命令行将npm start
转换为wait_for_it.sh
。
您现在拥有的方式是,一旦wait-for-it.sh
可以打开到postgres:5432
的tcp连接并从而生成无害的“不完整的启动包”日志消息,则应用程序退出。
您想要的是让wait_for_it.sh
在可以到达该端口时运行npm start
。
请在docker-compose.yml中尝试这样的操作:/usr/wait-for-it.sh --timeout=0 postgres:5432 -- npm start
。
关于node.js - 在docker中使用wait-for-it.sh时启动包不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62611376/
具体详细介绍请看下文: 在使用文件进行交互数据的应用来说,使用FTP服务器是一个很好的选择。本文使用Apache Jakarta Commons Net(commons-net-3.3.jar)
我在日志文件中收到这些警告: WARN 2013-01-15 00:08:15,550 org.eclipse.jetty.http.HttpParser- HttpParser Full for
我在使用特定网页时遇到问题。当我按下链接时,我收到应用程序错误(不是 http 错误等,而是应用程序级别错误)。 但是我打开了开发人员工具和网络控制台,我看到没有请求发送到服务器。 所以我双击并选择查
我没有组装经验,但这是我一直在做的。如果在通过程序集中的指针传递参数和调用函数时缺少任何基本方面,我希望输入。 例如,我想知道是否应该还原ecx,edx,esi,edi,。我读到它们是通用寄存器,但我
我没有组装经验,但这是我一直在做的。如果在通过程序集中的指针传递参数和调用函数时缺少任何基本方面,我希望输入。 例如,我想知道是否应该还原ecx,edx,esi,edi,。我读到它们是通用寄存器,但我
我正在尝试创建完整 uiscrollview 的快照,所有内容大小,我已经搜索了很多,并且我在 SO 上找到了一些东西,如下所示: Getting a screenshot of a UIScroll
我想复制一个包含以下结构的Vector,对我来说重要的是在修改复制的 vector 时保持原始Vector完整: public class objet_poid_n { public int
给定一个示例字符串 s = '嗨,我的名字是 Humpty-Dumpty,来自“爱丽丝,爱丽丝镜中奇遇记”',我想将其分成以下 block : # To Do: something like {l =
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我正在尝试创建一个正则表达式来查找文本中的 Linux 文件路径,但是正则表达式对我来说非常陌生。我有下面的代码片段,它将识别下面文件结构的开头。 .*(/bin/|/home/).* 完成正则表达式
我正在寻找远程托管的 JPG 的尺寸、宽度和高度。我已经了解了如何通过下载完整图像来执行此操作。 但是,如果我可以通过仅下载足以获取此信息的方式来做到这一点,那将是理想的。 典型的图像大小为 200K
有没有办法让下面的代码: import traceback def log(message): print "%s: %s" %(traceback.extract_stack()[0:-1]
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 3 年前。 Improve this qu
git show 显示了修订版中所做的所有更改。但是,它会打印出所有更改——而不仅仅是文件名。 git show --stat 只显示文件名,但它把它们截断了!有没有办法获得已更改文件名的完整列表?
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
当我在模板中调用我的模型 get_absolute_url 方法时,我想要一个绝对/完整的 url。在我的入门模型中,我有以下内容: def get_absolute_url(self): r
我正在使用 jQuery 1.5.1 这是我的代码: $('.cellcontent').animate({ left: '-=190'}, { easing: alert('start
我正在使用下面的方法删除条形图并使用新数据更新条形图,但这样做时出现了一个小故障/完整的图表消失 1 秒,直到加载新数据。但是是否可以通过仅增加/减少柱形而不实际消失图表来实现相同的目的。 d3.se
基于 this question 中的讨论,任何人都可以提供代码或代码链接,显示 NumericLiteralX 模块的完整实现(例如 this one )?我对 NumericLiteralX 模块
我的目标是检索网站的 html,并将其转换为可读的String。我下面的代码可以工作,但我遇到了一个技术问题:当我尝试检索 http://time.gov/HTML5 的 html 时,我在 andr
我是一名优秀的程序员,十分优秀!