- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 docker run 命令通过 Dockerfile 运行 docker 容器。以下是我的 Dockerfile。
FROM python:3.6
# for imaging stuff
RUN apt-get update
RUN apt install libmagickwand-dev
# Create app directory
RUN mkdir -p /home/test/app
# Install Libre Office and ghostscript for pdf conversion and repairing
RUN apt-get update -qq \
&& apt-get install -y -q libreoffice \
&& apt-get remove -q -y libreoffice-gnome \
&& apt-get update \
&& apt-get -y install ghostscript \
&& apt-get -y install nano \
&& apt-get -y install poppler-utils \
&& apt-get install -y nginx
# Cleanup after apt-get commands
RUN apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \
/var/cache/apt/archives/*.deb /var/cache/apt/*cache.bin
# Activate WORKING DIR
WORKDIR /home/test/app
# Initiating devnull directory
RUN mkdir -p dev_null
# Copying requirements
COPY requirements/local.txt /tmp/requirements.txt
# Install the app dependencies
RUN pip install -r /tmp/requirements.txt
COPY id_rsa /root/.ssh/id_rsa
COPY requirements/private.txt /tmp/private.txt
RUN ssh-keyscan -T 60 bitbucket.org >> /root/.ssh/known_hosts \
&& chmod 600 /root/.ssh/id_rsa \
&& pip install -r /tmp/private.txt
# Envs
ENV DJANGO_SETTINGS_MODULE app.settings.local
ENV ENVIORNMENT local
# ADD the source code and entry point into the container
ADD . /home/test/app
ADD docker-entrypoint.sh /home/test/app/docker-entrypoint.sh
# Making entry point executable
RUN apt-get update && apt-get install -y supervisor \
&& apt-get install -y nginx
#RUN mkdir -p /var/log/test
#COPY supervisor.conf /etc/supervisor/conf.d/supervisor.conf
RUN chmod +x docker-entrypoint.sh
RUN mkdir -p /var/log/test
COPY supervisor.conf /etc/supervisor/conf.d/supervisor.conf
# Exposing port
# Copy entrypoint script into the image
COPY ./docker-entrypoint.sh /
COPY ./django_nginx.conf /etc/nginx/
RUN chmod +x start.sh
#RUN chmod +x /docker-entrypoint.sh
EXPOSE 8000
ENTRYPOINT ["bash", "/docker-entrypoint.sh"]
CMD ["bash", "/home/test/app/start.sh"]
#!/usr/bin/env bash
set -e
# ToDo Need to enable this
#until psql $DATABASE_URL -c '\l'; do
# >&2 echo "Postgres is unavailable - sleeping"
# sleep 1
#done
#
#>&2 echo "Postgres is up - continuing"
cd app
mkdir -p app/keys
if [[ ! -e /var/log/gunicorn-access.log ]]; then
touch /var/log/gunicorn-access.log
fi
if [[ ! -e /var/log/gunicorn-error.log ]]; then
touch /var/log/gunicorn-error.log
fi
if [ "x$DJANGO_MANAGEPY_MIGRATE" = 'xon' ]; then
echo "Django starting to migrate un-applied migrations"
python manage.py migrate --noinput
fi
if [ "x$DJANGO_MANAGEPY_COLLECTSTATIC" = 'xon' ]; then
echo "Django starting to collect static data"
python manage.py collectstatic --noinput
fi
if [ "x$DJANGO_LOADDATA" = 'xon' ]; then
python manage.py loaddata taxing/fixtures/province-taxing-table-initial-data.json
fi
if [ "x$LOAD_TEMPLATE_FROM_S3" = 'xtrue' ]; then
echo "loading s3"
python manage.py loadindex
fi
# Start Gunicorn processes
echo Starting Gunicorn.
exec gunicorn test.wsgi:application \
--name test \
--workers 3 \
--log-level=info \
--log-file=/srv/logs/gunicorn.log \
--access-logfile=/srv/logs/access.log &
exec service nginx start
#!/bin/bash
echo "I am running"
echo "Belive me"
/usr/bin/supervisord -n
docker build -t test .
构建容器它正在 build 中。但是当我尝试使用
docker run --name test --env-file ./env test
运行这个容器时我的容器在
["bash", "/docker-entrypoint.sh"]
上退出命令 Dockerfile 没有任何错误/消息,但如果我从 Dockerfile 中删除入口点命令,它就可以正常工作。我无法找出错误。任何帮助表示赞赏。
最佳答案
这是我在这个序列中看到的:
ENTRYPOINT ["bash", "/docker-entrypoint.sh"]
CMD ["bash", "/home/test/app/start.sh"]
bash /docker-entrypoint.sh bash /home/test/app/start.sh
.然而,入口点脚本根本不查看它的命令行参数,所以任何
CMD
您在此处指定或在
docker run
末尾给出的任何命令命令行被完全忽略。
exec gunicorn ... &
exec service nginx start
# end of file
gunicorn
作为后台进程并继续到下一行;然后它用
service
替换自己命令。那个
service
command 成为主容器进程,进程 ID 为 1。它启动 nginx,并立即返回。现在主容器进程已经返回,容器退出。
exec
在入口点脚本末尾添加几行并将它们替换为
exec "$@"
CMD
)。
关于docker 容器在入口点退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55057650/
通常入口重写目标的工作原理如下: nginx.ingress.kubernetes.io/rewrite-target: / 这将重写服务名称的目标,因为它们在根目录中。所以如果我有这个: apiVe
我正在使用 Helm 部署的 GKE (1.8.5-gke.0) 上运行 traefik 入口 Controller 。我观察到的是请求经常得到 404 响应。 看起来 traefik 会不断重新加载
是否可以在没有负载均衡器的情况下在 Kubernetes 中使用 Ingress Controller 功能(在 Digital Ocean 中)。 有没有其他机制可以让域名映射到Kubernetes
我使用 KOPS 和 nginx-ingress 在 AWS 上部署了 Kubernetes。 为了评估多个云(并削减成本),我想在 GKE 上进行部署。一切正常,除了该死的 Ingress。 (这是
要求:想要使用带有 HTTPS 的入口部署 Minio 和另一个后端服务(不用于生产目的) 我一直在尝试创建一个入口以从 GKE 中的 Kubernetes 集群外部访问两个服务。这些是我尝试过的尝试
我对使用漏斗可视化功能的谷歌分析有点坚持。 输入漏斗可视化时,它会显示带有数字的“(入口)”。 这代表什么? 最佳答案 这表示在漏斗中第一步所代表的特定页面或一组页面上进入您网站的人数。 关于goog
我尝试在我的 kubernetes 集群上配置入口。我关注了documentation安装入口 Controller 并运行以下命令 kubectl apply -f https://raw.gith
我无法连接到使用 nginx 入口运行的应用程序(Docker Desktop win 10)。 nginx-ingress Controller pod 正在运行,应用程序运行良好,并且我创建了一个
我试图弄清楚如何使用具有某些特定规则的 nginx 代理缓存。例如,当我托管 Ghost 或 Wordpress 时,我不想缓存管理部分。使用服务器片段,我尝试了很多不同的组合,但在管理部分的缓存仍然
我正在尝试将AKS入口的IP列入白名单。我目前正在使用未随Helm一起安装的ingress-nginx。 强制性kubernetes资源可以在here中找到 服务启动为: spec: extern
我的机构有防火墙设置,阻止了大部分外部端口,目前,我有内部 Linux 虚拟机,例如, http://abc.xyz:5555 (此链接只能在内网访问),并且管理员设置了Netscaler,以便将内部
我正在尝试根据用户代理代理_传递流量。试图为它使用服务器代码段/配置代码段,但入口不允许我。 (禁止在 server-snippet 中使用 proxy_pass 并在 configuration-s
我已经使用 nginx-stable 安装了 nginx helm 图表和配置的入口规则如下。虽然它仅适用于根路径,如下所示, /user/login - working /user/register
使用 KOPS 在 AWS 上部署 k8s。 我已经创建了 nginx 入口 https://github.com/kubernetes/ingress-nginx nginx-ingress-con
在我的聊天应用程序中,当一个用户将另一个人添加到他/她的联系人列表中时,服务器条目显示 BOTH 订阅,但在我的应用程序中,代码根据 TO/FROM 订阅工作(就像在接受 friend 请求之前一样)
我在 Python 中有一个实用程序模块,它需要知道正在使用它的应用程序的名称。实际上,这意味着被调用以启动应用程序的顶级 python 脚本的名称(即,其中__name=="__main__"为真)
在这种情况下,我将如何实现“OnButtonClick”以便在按下按钮时打印用户输入“e1”? from Tkinter import * class App: def __init__
我使用以下命令在本地生成 key 。 openssl genrsa -out testsvc.testns.ing.lb.xyz.io.key.pem 2048 并使用以下命令生成 CSR(证书签名请
我正在运行 mint 17.2 kde。 我通过在 ~/Downloads/中运行 idea.sh 安装了 intellij CE 然后我将 intellij 移动到/usr/lib/。现在,当我尝试
我无法让 Controller 工作。尝试了很多次,我仍然得到 Error: ImagePullBackOff。 有没有我可以尝试的替代方案或者它失败的原因? kubectl apply -f
我是一名优秀的程序员,十分优秀!