我的项目 运行 图片出现错误。在这里,我正在尝试对我的应用程序进行 dockerize
I am getting error while running image for my project. Here i am trying to dockerize my application
db_url = os.environ['OPENSHIFT_MYSQL_DB_URL']
File "/usr/local/lib/python2.7/UserDict.py", line 40, in __getitem__
raise KeyError(key)
KeyError: 'OPENSHIFT_MYSQL_DB_URL'
My Dockerfile look like:
FROM python:2.7.13
RUN apt-get update && apt-get install -y libsasl2-dev python-dev
libldap2-dev
RUN apt-get install -y gcc libc-dev unixodbc-dev libffi-dev
RUN apt-get install -y apt-utils
RUN apt-get install -y libmysqlclient-dev libssl-dev netcat
RUN pip install --upgrade pip
COPY . /LAE-python
WORKDIR /LAE-python
RUN pwd
#RUN pip install -r requirements.txt
RUN python setup.py develop
ENTRYPOINT ["pserve"]
CMD ["development.ini","--reload"]
My Code :
import os
import sys
import transaction
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from sqlalchemy import Column,Integer, String,ForeignKey
from mtools.settings import mysql_user,mysql_passowrd,database_name
db_session =
scoped_session(sessionmaker(autocommit=False,autoflush=False))
db_url = os.environ['OPENSHIFT_MYSQL_DB_URL']
engine_string = db_url+database_name
我收到 "db_url = os.environ['OPENSHIFT_MYSQL_DB_URL']" 行的错误,我的问题是如何在一个 dockerfile 中设置所有这些环境变量,以便我可以构建图像并 运行 它。 LAE 服务器中的早期代码现在我们正在转移到一些基于容器化的服务器。
您的问题与 ENV 配置设置有关,因此,我删除了所有其他内容以向您展示问题出在哪里:
这是带有 ENV 设置的 dockerfile
FROM python:2.7.13
RUN apt-get update && apt-get install -y libsasl2-dev python-dev libldap2-dev
RUN apt-get install -y gcc libc-dev unixodbc-dev libffi-dev
RUN apt-get install -y apt-utils
RUN apt-get install -y libmysqlclient-dev libssl-dev netcat
RUN pip install --upgrade pip
ENV OPENSHIFT_MYSQL_DB_URL "your URL"
COPY . /LAE-python
WORKDIR /LAE-python
CMD ["python","-u", "setup.py"]
这是setup.py:
import os
import sys
db_url = os.environ['OPENSHIFT_MYSQL_DB_URL']
print db_url
现在您可以访问 os.environ 变量。
参考:
db_url = os.environ['OPENSHIFT_MYSQL_DB_URL']
File "/usr/local/lib/python2.7/UserDict.py", line 40, in __getitem__
raise KeyError(key)
KeyError: 'OPENSHIFT_MYSQL_DB_URL'
My Dockerfile look like:
FROM python:2.7.13
RUN apt-get update && apt-get install -y libsasl2-dev python-dev
libldap2-dev
RUN apt-get install -y gcc libc-dev unixodbc-dev libffi-dev
RUN apt-get install -y apt-utils
RUN apt-get install -y libmysqlclient-dev libssl-dev netcat
RUN pip install --upgrade pip
COPY . /LAE-python
WORKDIR /LAE-python
RUN pwd
#RUN pip install -r requirements.txt
RUN python setup.py develop
ENTRYPOINT ["pserve"]
CMD ["development.ini","--reload"]
My Code :
import os
import sys
import transaction
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from sqlalchemy import Column,Integer, String,ForeignKey
from mtools.settings import mysql_user,mysql_passowrd,database_name
db_session =
scoped_session(sessionmaker(autocommit=False,autoflush=False))
db_url = os.environ['OPENSHIFT_MYSQL_DB_URL']
engine_string = db_url+database_name
我收到 "db_url = os.environ['OPENSHIFT_MYSQL_DB_URL']" 行的错误,我的问题是如何在一个 dockerfile 中设置所有这些环境变量,以便我可以构建图像并 运行 它。 LAE 服务器中的早期代码现在我们正在转移到一些基于容器化的服务器。
您的问题与 ENV 配置设置有关,因此,我删除了所有其他内容以向您展示问题出在哪里:
这是带有 ENV 设置的 dockerfile
FROM python:2.7.13
RUN apt-get update && apt-get install -y libsasl2-dev python-dev libldap2-dev
RUN apt-get install -y gcc libc-dev unixodbc-dev libffi-dev
RUN apt-get install -y apt-utils
RUN apt-get install -y libmysqlclient-dev libssl-dev netcat
RUN pip install --upgrade pip
ENV OPENSHIFT_MYSQL_DB_URL "your URL"
COPY . /LAE-python
WORKDIR /LAE-python
CMD ["python","-u", "setup.py"]
这是setup.py:
import os
import sys
db_url = os.environ['OPENSHIFT_MYSQL_DB_URL']
print db_url
现在您可以访问 os.environ 变量。
参考: