docker - Apache Superset:无法第二次运行
问题描述
docker-compose run --rm superset ./docker-init.sh
我能够通过第一次运行来设置和运行 Superset 。在那之后,当我尝试相同的命令甚至简单的命令时,docker-compose up
它开始表现得很奇怪。以下是不同的输出:
Docker 容器日志
➜ docker git:(master) docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cdb96671175a superset_superset "/entrypoint.sh" 4 minutes ago Up 4 minutes (unhealthy) 0.0.0.0:8088->8088/tcp superset_superset_1
f1835b2641c9 redis:3.2 "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 127.0.0.1:6379->6379/tcp superset_redis_1
8dbf08dd726f postgres:10 "docker-entrypoint.s…" 4 minutes ago Up 4 minutes 127.0.0.1:5432->5432/tcp superset_postgres_1
➜ docker git:(master) docker logs cdb96671175a
+ '[' 0 -ne 0 ']'
+ '[' development = development ']'
+ celery worker --app=superset.sql_lab:celery_app --pool=gevent -Ofair
+ cd superset/assets/
+ npm ci
npm WARN prepare removing existing node_modules/ before installation
2019-10-07 11:59:49,785:INFO:root:logging was configured successfully
2019-10-07 11:59:50,307:INFO:root:Configured event logger of type <class 'superset.utils.log.DBEventLogger'>
2019-10-07 11:59:51,715:DEBUG:asyncio:Using selector: SelectSelector
➜ docker git:(master)
➜ docker git:(master) docker logs cdb96671175a
+ '[' 0 -ne 0 ']'
+ '[' development = development ']'
+ celery worker --app=superset.sql_lab:celery_app --pool=gevent -Ofair
+ cd superset/assets/
+ npm ci
npm WARN prepare removing existing node_modules/ before installation
2019-10-07 11:59:49,785:INFO:root:logging was configured successfully
2019-10-07 11:59:50,307:INFO:root:Configured event logger of type <class 'superset.utils.log.DBEventLogger'>
2019-10-07 11:59:51,715:DEBUG:asyncio:Using selector: SelectSelector
npm ERR! code E504
npm ERR! 504 Gateway Timeout - GET https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz
Superset 容器中的 Docker Exec
docker exec -it cdb96671175adfdcfbe8d32f51c395f0fe77faab6b1f76f7266ca03eb0720a04 /bin/sh -c "[ -e /bin/bash ] && /bin/bash || /bin/sh"
➜ docker git:(master) docker exec -it cdb96671175adfdcfbe8d32f51c395f0fe77faab6b1f76f7266ca03eb0720a04 /bin/sh -c "[ -e /bin/bash ] && /bin/bash || /bin/sh"
root@cdb96671175a:/home/superset# %
➜ docker git:(master)
运行 docker-compose up 后的控制台输出
fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
redis_1 | 1:M 07 Oct 11:59:42.628 * DB loaded from disk: 0.000 seconds
redis_1 | 1:M 07 Oct 11:59:42.628 * The server is now ready to accept connections on port 6379
superset_1 | + '[' 0 -ne 0 ']'
superset_1 | + '[' development = development ']'
superset_1 | + celery worker --app=superset.sql_lab:celery_app --pool=gevent -Ofair
postgres_1 | 2019-10-07 11:59:42.573 UTC [1] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgres_1 | 2019-10-07 11:59:42.600 UTC [23] LOG: database system was shut down at 2019-10-07 11:57:21 UTC
superset_1 | + cd superset/assets/
superset_1 | + npm ci
postgres_1 | 2019-10-07 11:59:42.606 UTC [1] LOG: database system is ready to accept connections
superset_1 | npm WARN prepare removing existing node_modules/ before installation
superset_1 | 2019-10-07 11:59:49,785:INFO:root:logging was configured successfully
superset_1 | 2019-10-07 11:59:50,307:INFO:root:Configured event logger of type <class 'superset.utils.log.DBEventLogger'>
superset_1 | 2019-10-07 11:59:51,715:DEBUG:asyncio:Using selector: SelectSelector
superset_1 | npm ERR! code E504
superset_1 | npm ERR! 504 Gateway Timeout - GET https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz
解决方案
我通过替换找到了解决方法RUN cd superset/assets \
&& npm ci\
&& npm run build \
&& rm -rf node_modules
经过
RUN cd superset/assets \
&& npm install \
&& npm run build \
&& rm -rf node_modules
在超集的 dockerfile (/contrib/docker/)
推荐阅读
- mysql - MySQL缓存准备好的语句以提高性能
- semantic-ui-react - 我可以为我的自定义主题添加新颜色到 SUI.COLORS 吗?
- javascript - 如何从另一个网站复制 {{}} 内的数据以供在我的网站中使用?
- android - Android & Unity3D - 混合数据交换/动作/通信并使用 UNity3D 作为集成
- python - 我们可以将条件参数传递给 pytest 中的夹具函数吗?
- sql - 如何确定每个用户的平均笔记数?
- python - shutil.copyfile 不应该用 follow_symlinks 集替换 dst 中的链接吗?
- knockout.js - KnockoutJS:为现有模型分配一个新模型,例如(model.order = neworder)不会改变视图中的值,为什么?
- css - 单独使用 css 移动元素
- java - 如何引发“应用程序无响应”