Не могу удаленно запустить проект с pycharm - PullRequest
0 голосов
/ 25 марта 2020

Я сделал локальную рабочую станцию ​​с CentOS 8, я установил docker CE и все необходимое для настройки среды удаленной разработки (smb, firewall, et c.).

Мой клиент компьютер - это ма c, а приложение основано на docker -композиции из нескольких контейнеров, которые с приложением docker MA C работают правильно.

После настройки Pycharm Professional с помощью удаленного переводчика и начиная проект, есть 2 контейнера, которые отлично запускаются (postgres: 11.2-alpine, redis: alpine), но приложение, которое является Django -рестом с указанным c dockerfile, когда оно готово выполнить точку входа throws Следующая ошибка, которую я прилагаю ниже, хотя я получил доступ к серверу, и если я выполняю команду docker-compose up --build, она запускается отлично, это связано с фактом запуска из Pycharm.

У кого-нибудь была эта проблема и смог решить ее?

Successfully tagged energy_energy:latest
Creating energy_redis-celery-energy_1 ... 
Creating energy_redis-cache-energy_1  ... 
Creating energy_postgres_1            ... 
Creating energy_celery-worker-energy_1 ... 
Creating energy_celery-beat-energy_1   ... 
Creating energy_celery-beat-energy_1   ... error
ERROR: for energy_celery-beat-energy_1  Cannot start service celery-beat-energy: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"./start.sh\": stat ./start.sh: no such file or directory": unknown
Creating energy_celery-worker-energy_1 ... error
ERROR: for energy_celery-worker-energy_1  Cannot start service celery-worker-energy: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"./start.sh\": stat ./start.sh: no such file or directory": unknown

ERROR: for celery-beat-energy  Cannot start service celery-beat-energy: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"./start.sh\": stat ./start.sh: no such file or directory": unknown

ERROR: for celery-worker-energy  Cannot start service celery-worker-energy: OCI runtime create failed: container_linux.go:349: starting container process caused "exec: \"./start.sh\": stat ./start.sh: no such file or directory": unknown
ERROR: Encountered errors while bringing up the project

Это весь мой Dockerfile:

FROM python:3.7-alpine

ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV CERTS_DIR /var/certs
ENV NGINX_VERSION 1.15.3

EXPOSE 1234

RUN apk update \
   && GPG_KEYS=B0F4253373F8F6F510D42178520A9993A1C052F8 \
   && CONFIG="\
      --prefix=/etc/nginx \
      --sbin-path=/usr/sbin/nginx \
      --modules-path=/usr/lib/nginx/modules \
      --conf-path=/etc/nginx/nginx.conf \
      --error-log-path=/var/log/nginx/error.log \
      --http-log-path=/var/log/nginx/access.log \
      --pid-path=/var/run/nginx.pid \
      --lock-path=/var/run/nginx.lock \
      --http-client-body-temp-path=/var/cache/nginx/client_temp \
      --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
      --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
      --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
      --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
      --user=nginx \
      --group=nginx \
      --with-http_ssl_module \
      --with-http_realip_module \
      --with-http_addition_module \
      --with-http_sub_module \
      --with-http_dav_module \
      --with-http_flv_module \
      --with-http_mp4_module \
      --with-http_gunzip_module \
      --with-http_gzip_static_module \
      --with-http_random_index_module \
      --with-http_secure_link_module \
      --with-http_stub_status_module \
      --with-http_auth_request_module \
      --with-http_xslt_module=dynamic \
      --with-http_image_filter_module=dynamic \
      --with-http_geoip_module=dynamic \
      --with-threads \
      --with-stream \
      --with-stream_ssl_module \
      --with-stream_ssl_preread_module \
      --with-stream_realip_module \
      --with-stream_geoip_module=dynamic \
      --with-http_slice_module \
      --with-mail \
      --with-mail_ssl_module \
      --with-compat \
      --with-file-aio \
      --with-http_v2_module \
   " \
   && addgroup -S nginx \
   && adduser -D -S -h /var/cache/nginx -s /sbin/nologin -G nginx nginx \
   && apk add tzdata \
      gcc \
      libc-dev \
      linux-headers \
      mariadb-dev \
      postgresql-dev \
      netcat-openbsd \
      curl \
      libffi-dev \
      supervisor \
   && apk add --no-cache --virtual .build-deps \
      make \
      openssl-dev \
      pcre-dev \
      zlib-dev \
      gnupg1 \
      libxslt-dev \
      gd-dev \
      geoip-dev \
   && curl -fSL https://nginx.org/download/nginx-$NGINX_VERSION.tar.gz -o nginx.tar.gz \
   && curl -fSL https://nginx.org/download/nginx-$NGINX_VERSION.tar.gz.asc  -o nginx.tar.gz.asc \
   && export GNUPGHOME="$(mktemp -d)" \
   && found=''; \
   for server in \
      ha.pool.sks-keyservers.net \
      hkp://keyserver.ubuntu.com:80 \
      hkp://p80.pool.sks-keyservers.net:80 \
      pgp.mit.edu \
   ; do \
      echo "Fetching GPG key $GPG_KEYS from $server"; \
      gpg --keyserver "$server" --keyserver-options timeout=10 --recv-keys "$GPG_KEYS" && found=yes && break; \
   done; \
   test -z "$found" && echo >&2 "error: failed to fetch GPG key $GPG_KEYS" && exit 1; \
   gpg --batch --verify nginx.tar.gz.asc nginx.tar.gz \
   && rm -rf "$GNUPGHOME" nginx.tar.gz.asc \
   && mkdir -p /usr/src \
   && tar -zxC /usr/src -f nginx.tar.gz \
   && rm nginx.tar.gz \
   && cd /usr/src/nginx-$NGINX_VERSION \
   && ./configure $CONFIG --with-debug \
   && make -j$(getconf _NPROCESSORS_ONLN) \
   && mv objs/nginx objs/nginx-debug \
   && mv objs/ngx_http_xslt_filter_module.so objs/ngx_http_xslt_filter_module-debug.so \
   && mv objs/ngx_http_image_filter_module.so objs/ngx_http_image_filter_module-debug.so \
   && mv objs/ngx_http_geoip_module.so objs/ngx_http_geoip_module-debug.so \
   && mv objs/ngx_stream_geoip_module.so objs/ngx_stream_geoip_module-debug.so \
   && ./configure $CONFIG \
   && make -j$(getconf _NPROCESSORS_ONLN) \
   && make install \
   && rm -rf /etc/nginx/html/ \
   && mkdir /etc/nginx/conf.d/ \
   && mkdir -p /usr/share/nginx/html/ \
   && install -m644 html/index.html /usr/share/nginx/html/ \
   && install -m644 html/50x.html /usr/share/nginx/html/ \
   && install -m755 objs/nginx-debug /usr/sbin/nginx-debug \
   && install -m755 objs/ngx_http_xslt_filter_module-debug.so /usr/lib/nginx/modules/ngx_http_xslt_filter_module-debug.so \
   && install -m755 objs/ngx_http_image_filter_module-debug.so /usr/lib/nginx/modules/ngx_http_image_filter_module-debug.so \
   && install -m755 objs/ngx_http_geoip_module-debug.so /usr/lib/nginx/modules/ngx_http_geoip_module-debug.so \
   && install -m755 objs/ngx_stream_geoip_module-debug.so /usr/lib/nginx/modules/ngx_stream_geoip_module-debug.so \
   && ln -s ../../usr/lib/nginx/modules /etc/nginx/modules \
   && strip /usr/sbin/nginx* \
   && strip /usr/lib/nginx/modules/*.so \
   && rm -rf /usr/src/nginx-$NGINX_VERSION \
   \
   && apk add --no-cache --virtual .gettext gettext \
   && mv /usr/bin/envsubst /tmp/ \
   \
   && runDeps="$( \
      scanelf --needed --nobanner --format '%n#p' /usr/sbin/nginx /usr/lib/nginx/modules/*.so /tmp/envsubst \
         | tr ',' '\n' \
         | sort -u \
         | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
   )" \
   && apk add --no-cache --virtual .nginx-rundeps $runDeps \
   && apk del .build-deps \
   && apk del .gettext \
   && mv /tmp/envsubst /usr/local/bin/ \
   \
   && ln -sf /dev/stdout /var/log/nginx/access.log \
   && ln -sf /dev/stderr /var/log/nginx/error.log

COPY nginx.conf /etc/nginx/nginx.conf
COPY conf/certs /var/certs
COPY ./src /app
COPY supervisord.ini /etc/supervisor.d/supervisord.ini

WORKDIR /app

RUN pip install --upgrade pip
RUN pip install pipenv
RUN pipenv install --system

RUN chmod +x ./start.sh
ENTRYPOINT ["./start.sh"]

Это м y whole docker -compose:

# SERVICE                 ENDPOINT          USER      PASSWORD
# ==========================================================
# postgres-11             localhost:2323     root        root
# redis-cache-energy      sin exposición     no          no
# redis-celery            sin exposición     no          no
# energy                  localhost:1337     no          no                Nnigx => Gunicorn => Django
# celery-beat             sin exposición     no          no
# celery-worker           sin exposición     no          no



version: '3'
services:

  ####################################################################################################
  #                                             DATABASES                                             #
  ####################################################################################################
  postgres:
    image: postgres:11.2-alpine
    restart: always
    volumes:
      - postgres_data_energy:/var/lib/postgresql/data/
    environment:
      - POSTGRES_USER=root
      - POSTGRES_PASSWORD=root
      - POSTGRES_DB=local
    ports:
      - "2323:5432"
    networks:
      - energy-network

  ####################################################################################################
  #                                               REDIS                                              #
  ####################################################################################################
  redis-cache-energy:
    image: redis:alpine
    command: redis-server --requirepass root
    restart: always
    networks:
      - energy-network

  redis-celery-energy:
    image: redis:alpine
    command: redis-server --requirepass root
    restart: always
    networks:
      - energy-network


  ####################################################################################################
  #                                               energy                                               #
  ####################################################################################################
  celery-beat-energy:
    build: .
    command: celery-beat-energy
    restart: always
    volumes:
      - ./src:/app
      - ./logs:/var/logs
    env_file:
      - conf/local.env
    depends_on:
      - redis-celery-energy
    networks:
      - energy-network

  celery-worker-energy:
    build: .
    command: celery-worker-energy
    restart: always
    volumes:
      - ./src:/app
      - ./logs:/var/logs
    env_file:
      - conf/local.env
    depends_on:
      - redis-celery-energy
    networks:
      - energy-network

  energy:
    build: .
    command: nginx
    restart: always
    volumes:
      - ./src:/app
      - ./logs:/var/logs
    ports:
      - 1234:1234
    env_file:
      - conf/local.env
    depends_on:
      - postgres
      - redis-cache-energy
      - redis-celery-energy
      - celery-worker-energy
      - celery-beat-energy
    networks:
      - energy-network

####################################################################################################
#                                             VOLUMES                                              #
####################################################################################################
volumes:
  postgres_data_energy:

####################################################################################################
#                                             networks                                              #
####################################################################################################

networks:
  energy-network:
    driver: bridge

Дополнительная информация:

Если я запускаю проект из терминала S SH из pycharm и запускаю команду ls в точке входа, я вижу файлы.

S SH ТЕРМИНАЛ ИЗ PYCHARM

РЕЗУЛЬТАТ ВВОДА ТОЧКИ, СМОТРИТЕ ФАЙЛЫ

Если я запускаю форму pycharm the ls пуст.

РЕЗУЛЬТАТ ВХОДА, ПУСТОЙ

ВЫПУСК ИЗ PYCHARM

Подробнее о моем проблема

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...