提交 7ca32da3 authored 作者: 宋宏伟's avatar 宋宏伟

update code

上级 3abbf97a
## 添加nginx版本
FROM rocker/shiny:4.3.2
# 使用 Shiny 的 Rocker 镜像
FROM rocker/shiny:4.2.3
# 配置环境变量
ENV PYTHON_VER=3.8.18
ENV BASE_PATH='/opt'
ENV JAVA_HOME=${BASE_PATH}/jdk11
ENV PATH=${JAVA_HOME}/bin:$PATH
ENV KETTLE_HOME=${BASE_PATH}/in2-t2dm/config/etl
# 复制基础文件
WORKDIR ${BASE_PATH}
COPY . ${BASE_PATH}/in2-t2dm/
#添加系统repo镜像源
# 添加系统 repo 镜像源
RUN echo "deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse\n\
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse\n\
......@@ -26,44 +13,61 @@ deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted univers
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse" > /etc/apt/sources.list
# 更新软件包列表,安装Python和nginx相关包,清理缓存
RUN apt-get update && \
apt-get install -y xz-utils build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev pkg-config make nginx cron&& \
rm -rf /var/lib/apt/lists/* && \
mkdir -p ${BASE_PATH}/in2-t2dm/
# 安装编译 Python 所需的依赖
RUN apt-get update && apt-get install -y --no-install-recommends \
wget \
curl \
git \
pkg-config \
default-libmysqlclient-dev \
xz-utils \
build-essential \
zlib1g-dev \
libncurses5-dev \
libgdbm-dev \
libnss3-dev \
libssl-dev \
libsqlite3-dev \
libreadline-dev \
libffi-dev \
libbz2-dev \
make \
nginx \
cron \
&& rm -rf /var/lib/apt/lists/*
COPY Python-3.10.16.tgz Python-3.10.16.tgz
# 下载并编译安装指定版本的 Python(这里以 3.10.16 为例)
RUN tar -xzf Python-3.10.16.tgz \
&& cd Python-3.10.16 \
&& ./configure --enable-optimizations \
&& make -j$(nproc) \
&& make install \
&& cd .. \
&& rm -rf Python-3.10.16 Python-3.10.16.tgz
# 复制 requirements.txt
COPY requirements.txt /opt/requirements.txt
# 设置工作目录
WORKDIR /opt
# 安装Python
COPY --from=registry.cn-hangzhou.aliyuncs.com/palan/in2-dependency:1.0 ${BASE_PATH}/Python-${PYTHON_VER}.tar.xz ${BASE_PATH}/
RUN tar -xf Python-${PYTHON_VER}.tar.xz && \
cd Python-${PYTHON_VER} && \
./configure --enable-optimizations --enable-shared && \
make -j 4 && \
make install && \
ldconfig ${BASE_PATH}/Python${PYTHON_VER} && \
pip3 install --no-cache-dir -i https://mirrors.aliyun.com/pypi/simple -r ${BASE_PATH}/in2-t2dm/codes/transform/requirements.txt && \
rm -rf ${BASE_PATH}/Python-${PYTHON_VER}.tar.xz ${BASE_PATH}/Python-${PYTHON_VER}
# 更换 pip 源为国内镜像(如阿里云)
RUN pip3 install --no-cache-dir --upgrade pip setuptools wheel \
&& pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ \
&& pip install --no-cache-dir -r requirements.txt \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# 安装kettle的依赖环境java,解压kettle
COPY --from=registry.cn-hangzhou.aliyuncs.com/palan/in2-dependency:1.0 ${BASE_PATH}/OpenJDK11U-jdk_x64_linux_hotspot_11.0.9.1_1.tar.gz ${BASE_PATH}/
COPY --from=registry.cn-hangzhou.aliyuncs.com/palan/in2-dependency:1.0 ${BASE_PATH}/pdi-ce-9.4.0.0-343.zip ${BASE_PATH}/
RUN unzip -d ${BASE_PATH}/in2-t2dm/codes/etl/ pdi-ce-9.4.0.0-343.zip && \
rm -f ${BASE_PATH}/pdi-ce-9.4.0.0-343.zip && \
tar -zxvf ${BASE_PATH}/OpenJDK11U-jdk_x64_linux_hotspot_11.0.9.1_1.tar.gz -C ${BASE_PATH}/ && \
mv ${BASE_PATH}/jdk-11.0.9.1+1 ${BASE_PATH}/jdk11 && \
rm -rf ${BASE_PATH}/OpenJDK11U-jdk_x64_linux_hotspot_11.0.9.1_1.tar.gz
# 安装 R 包
RUN R -e "install.packages(c('pacman', 'here', 'rio', 'sp', 'shiny', 'shinydashboard', 'webshot', 'png', 'plotly', 'lubridate', 'showtext'), repos='https://mirrors.tuna.tsinghua.edu.cn/CRAN/')" && \
R -e "install.packages(c('arrow'), repos='https://cloud.r-project.org/')" && \
R -e "install.packages(c('textshaping','ragg','rvest','xml2','gtsummary','gt', 'tidyverse', 'shinyjs','officer','shiny.i18n','googleLanguageR','shinyWidgets','magick','officedown','readxl','janitor','survival','flextable','zoo','eoffice','tableone','reticulate'))"
# 安装R包
RUN R -e "install.packages(c('pacman', 'here', 'rio', 'sp', 'shiny', 'shinydashboard', 'webshot', 'png', 'plotly', 'lubridate', 'showtext'),repos='https://mirrors.tuna.tsinghua.edu.cn/CRAN/')" && \
R -e "install.packages(c('textshaping','ragg','rvest','xml2','gtsummary','gt','arrow', 'tidyverse'))"
# 设置环境变量
ENV PYTHONUNBUFFERED=1
# 配置nginx相关的目录
RUN mv /etc/nginx/* ${BASE_PATH}/in2-t2dm/codes/nginx/ && \
rm -rf /etc/nginx && \
ln -s ${BASE_PATH}/in2-t2dm/codes/nginx /etc/nginx && \
mv ${BASE_PATH}/in2-t2dm/codes/nginx/nginx.conf ${BASE_PATH}/in2-t2dm/config/nginx/nginx.conf && \
ln -s ${BASE_PATH}/in2-t2dm/config/nginx/nginx.conf ${BASE_PATH}/in2-t2dm/codes/nginx/nginx.conf && \
mv /var/log/nginx/* ${BASE_PATH}/in2-t2dm/logs/nginx/ && \
rm -rf /var/log/nginx && \
ln -s ${BASE_PATH}/in2-t2dm/logs/nginx /var/log/nginx
# 默认命令(如果需要的话,可以替换为具体的脚本)
CMD ["python3"]
\ No newline at end of file
#!/bin/bash
service cron start
cd /opt/in2-t2dm/codes/shiny/
mv in2_t2dm_shiny_v0.1.R app.R
/init
Rscript Shiny_T2DM.R 2>&1 | tee -a /opt/in2-t2dm/logs/shiny/shiny_$(date +%Y%m%d).log
......@@ -381,5 +381,3 @@ hypoglycemia_fu_reorder <- rx_reorder %>%
drop_na(reorder_fu_quarter) %>%
select(patient_id, reorder_rx_cat, reorder_fu_quarter, index_ym, subgroup, hypoglycemia)
save.image(here("data", "clean", "dataset_for_analysis.RData"))
......@@ -655,5 +655,3 @@ rx_iit <- Naive_inj_group %>%
rx_cat, std_rx_desc, iit_period, iit_same)
write_csv(rx_iit, "../../../data/preprocessed/rx_iit.csv")
save.image(here("data", "clean", "dataset_summary.RData"))
\ No newline at end of file
......@@ -40,7 +40,7 @@ colors <- c("#9B99BA", "#524F8B", "#FBB54D" , "#60ACFE", "#FA7C7D", "#5BC39D", "
colors2 <- c("#9B99BA", "#524F8B", "#9B99BA", "#524F8B", "#9B99BA", "#524F8B", "#9B99BA", "#524F8B", "#9B99BA", "#524F8B", "#9B99BA", "#524F8B", "#9B99BA", "#524F8B", "#9B99BA", "#524F8B", "#9B99BA", "#524F8B")
#colors <- c("#20024c", "#7b00e6", "#EC6A4E", "#62d287", "#f5c042", "#c898f2", "#6B5786", "#A35AEE", "#F19989", "#92E0AC", "#F8D383", "#D8B8F5")
setwd("E:/Work/Project/Sanofi-2型糖尿病/RX024PD06009/shiny")
# setwd("E:/Work/Project/Sanofi-2型糖尿病/RX024PD06009/shiny")
# 读取数据集
## 人群特征
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论